SQL-对压缩表上的索引进行碎片整理



我们有一个包含2个表的数据库,其中一个包含数亿行(行大小<1KB),另一个包含1400万行。在两者上都启用了压缩。数据库大小约为66GB。一切都很好。

75%的指数是零散的。同事在两张桌子上都开始了REBUILD。它已经运行了4.5个小时了。MDF大约是150GB,LDF大约是13GB,而且还在不断增长。我们的空间快用完了。

我们该怎么办?等它结束?是否取消查询?是否重新启动SQL?是否重新启动服务器?

在消耗了大约170GB的MDF文件后,该过程完成了7个小时。

所以答案是:

  1. 有足够的磁盘空间,接近未压缩数据的大小,或者至少压缩3倍
  2. 准备好根据需要增加磁盘空间,让IT为其服务(在虚拟机服务器上或使用热插拔物理盒)
  3. 总是一次做一张桌子
  4. 准备好等待很长时间

希望这能帮助到别人。

最新更新