恢复SQL表中未使用的空间

时间:2010-10-16 02:18:50

标签: sql

我们最近将列的值从现有表移动到新表,以便它可以驻留在单独的磁盘上。

预先存在的列仍然保留但已设置为null,因为某些历史应用程序在写入数据时仍可能引用此列。

该表现在有10GB未使用的空间,即使重建了Clustered索引并运行了DBCC SHRINKDATABASE和SHRINKFILE,我们也无法回收。

我们如何在此表中回收这10GB的未使用空间,因为新表格中的表格预计明年不会再增加10GB +但数据库中的其他表格将继续增长,我们希望返回此10GB到一般数据库池。

我将重复一遍,我们如何在特定的表格中回收这10GB的未使用空间(假设表格不为空)?

1 个答案:

答案 0 :(得分:1)

您是否尝试将表格导入新表格?这将是检查是否有可用空间的最简单方法。如果你不想增长这个数据库(因为它可能增长10GB),你可以创建一个临时数据库并导入那里,这样你就可以从最小的空数据库开始。此外,如果您在数据库上启用了完整日志记录,则可能需要在尝试SHRINKDATABASE / SHRINKFILE之前执行完全备份。