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