我已经删除了SQL server2019数据库中的一些表--这个表大约是1.5TB。并且已经缩小了数据库,但是没有效果。
发布于 2023-02-10 13:43:34
我已经删除了一些表,总共1.5TB,但是磁盘空间仍然在增长,并且没有减少.
如果在删除1.5 TB的表之后,数据库的总大小仍在增加,那么这意味着数据库实际上已经将这么大的空间再次用于其他事情。
当您删除一个表时,不管是否运行收缩操作,该表现在占用的磁盘空间在进入数据库时将自动被新数据覆盖。这个空间(即使仍然在磁盘上使用)现在可以在内部使用,并将在数据库进一步扩大之前首先使用。因此,如果数据库的大小增加,就意味着它已经在内部重用了所有这些腾出的空间。
与运行收缩命令的唯一不同之处是,它将空间释放回驱动器/ OS。但是,在没有缩小的情况下,该空间在内部仍然是免费的,而且数据库将首先将其用于新的数据,然后再增长。
另外,缩缩只将释放出来的空间释放回磁盘,即文件末尾。这就是为什么在运行收缩命令时,您不会总是看到磁盘恢复您所期望的所有空间。但是,从数据库的角度来看,收缩与否并不重要。无论怎样,数据库都将重用这个空间。
收缩数据文件通过将数据页从文件末尾移动到离文件前面更近的未占用空间来恢复空间。当在文件末尾创建足够的空闲空间时,可以将文件末尾的数据页释放并返回到文件系统。
https://dba.stackexchange.com/questions/323346
复制相似问题