最近,我不再只是在文件利用率接近 80% 时才增加文件,而是通过整理堆碎片、添加和删除聚集索引、实现行或页面压缩等常用技巧来更主动地回收空间。
但是,在某些情况下,我可以通过执行DBCC CLEANTABLE来回收更多空间。在我的环境中有数百个数据库,不可能知道用户在每个数据库中做了什么,并且完全可以接受涉及删除固定长度列的更改。我通常通过查看我编写的一些对象空间利用率脚本中的行数与页数来发现这些机会。我想通过尝试自动检测这些场景来更进一步。
我想知道的是,是否有人在积极监测这些机会,如果是,你具体寻找什么?
我的想法是按照收集行的最大和最小大小、表中的行数、分配的页数和使用的页数,然后做一些基本的数学运算来记录结果远远超出“预期”的范围。