2016-04-28 76 views
1

我想检查SQL Server如何使用磁盘空间来存储数据。我最近刚刚放下了一张大约100GB的表格,而且硬盘仍然保持不变(在掉落大小为30GB之前,掉落操作之后,尺寸应该会达到130GB)。在从网上检查后,注意到SQL Server不会自动处理它,为了让SQL Server发布硬盘块,需要收缩操作。如我错了请纠正我。SQL Server 2014如何使用磁盘空间来存储数据

现在我的问题是后我放弃了30GB的数据,SQL Server将逆转以备将来使用,这意味着SQL Server将使用该保留块的任何新的数据,而不是从OS请求块。如我错了请纠正我。

这里的信息,我从数据库中获取,如果我理解正确的话,SQL Server将保留约308GB的该数据文件,而且我们已经使用了大约196GB。因此,任何新的数据来到这个数据文件,SQL Server将使用保留的块,直到它达到308GB的大小,然后它从操作系统请求额外的块。我对吗 ?

enter image description here

;with db_file_cte as 
(
select 
    name, 
    type_desc, 
    physical_name, 
    size_mb = 
     convert(decimal(11, 2), size * 8.0/1024), 
    space_used_mb = 
     convert(decimal(11, 2), fileproperty(name, 'spaceused') * 8.0/1024) 
from sys.database_files 
) select 
name, 
type_desc, 
physical_name, 
size_mb, 
space_used_mb, 
space_used_percent = 
    case size_mb 
     when 0 then 0 
     else convert(decimal(5, 2), space_used_mb/size_mb * 100) 
    end 
from db_file_cte; 
+0

这真的没有什么关系** **编程(其中*这个网站是所有关于*),但与数据库管理 - 所以这里是题外话,属于在[dba.stackexchange.com] (http://dba.stackexchange.com) - 投票移动。 –

回答

1

如果我理解正确的话,SQL Server将保留约308GB的 该数据文件,而且我们已经使用了大约196GB。因此,任何新的数据到这个数据文件来 ,SQL Server将使用保留的块,直到它达到 大小308GB,然后它从OS请求额外的块。我对吗 ?

是的,你是正确的。 SQL Server数据库由磁盘上的文件组成。默认情况下,释放数据库中的空间不会更改文件的大小。

但是,您可能需要验证各个文件的自动增长设置。运行“sp_helpfile”并检查结果集中的maxsize和growth列。

如果需要,您可以缩小数据库(或特定文件)以释放未使用的磁盘空间。 (您也可以将数据库设置为自动缩小,但不建议这样做。)但出于性能原因,通常建议在数据库中留出大量可用空间。数据越不稳定,空闲空间就越有用。

相关问题