SQL Server 2014如何使用磁盘空间存储数据

SQL Server 2014如何使用磁盘空间存储数据,sql,sql-server,sql-server-2014,Sql,Sql Server,Sql Server 2014,我想检查sql server如何使用磁盘空间来存储数据。我最近刚刚删除了一个大约100GB的表,而硬盘仍然保持不变(删除前的大小是30GB,删除操作后的大小应该是130GB)。从web检查后,注意到SQL Server不会自动处理该问题,要获得SQL Server释放硬盘块,需要执行收缩操作。如果我错了,请纠正我 现在我的问题是,在我删除了30GB的数据后,SQL Server会将其反转以供将来使用,这意味着SQL Server将使用此保留块来处理任何新数据,而不是从操作系统请求块。如果我错了,

我想检查sql server如何使用磁盘空间来存储数据。我最近刚刚删除了一个大约100GB的表,而硬盘仍然保持不变(删除前的大小是30GB,删除操作后的大小应该是130GB)。从web检查后,注意到SQL Server不会自动处理该问题,要获得SQL Server释放硬盘块,需要执行收缩操作。如果我错了,请纠正我

现在我的问题是,在我删除了30GB的数据后,SQL Server会将其反转以供将来使用,这意味着SQL Server将使用此保留块来处理任何新数据,而不是从操作系统请求块。如果我错了,请纠正我

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

如果我理解正确的话,SQL Server为您保留了大约308GB的空间 这个数据文件,我们已经使用了大约196GB。所以有新的数据吗 对于此数据文件,SQL Server将使用保留块,直到它命中为止 大小为308GB,然后从操作系统请求额外的块。我说得对吗

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

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


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

这实际上与编程无关(本网站就是关于编程的),但与数据库管理有关-因此,这里没有话题,应该投票移动。
 ;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;