sql-server – 当索引重建空间不足时从已删除列中回收空间

我从一个包含大约1.11亿行(30gb数据,11gb索引)的表中删除了一个char(10)列

然后,我在聚集索引上运行索引重建.这会占用包含数据库的驱动器上的所有空间.

然后我运行了dbcc cleantable并获得了所有空间,再加上几个演出.

当没有足够的空间进行索引重建时,有没有办法从已删除的列中回收空间?

或者清晰的操作实际上是否回收了空间? (我知道它回收了空间,但是我猜它有可能因为不同的原因而回收空间,因为在放下一列之后不建议将清理作为回收空间的方法)

最佳答案
DBCC CLEANTABLE只能用于reclaim space left from dropping a variable length column.因此,它不能被视为重建表/索引的“好”替代品.

由于您声明您删除的列是一个固定长度的列,我只能猜测必须有一些其他原因未使用,但表中存在已分配的空间;也许幽灵记录或者你实际上也放弃了其他一些实际上是可变长度的列.

转载注明原文:sql-server – 当索引重建空间不足时从已删除列中回收空间 - 代码日志