找出您的索引上次重建/重组的时间

Rea*_*ces 5 sql-server sql-server-2008-r2 index-tuning fragmentation

我最近遇到了一个数据库,它在大表上有很高的碎片。

页数 > 1'000'000,碎片 99,...

我想知道这张表在没有重组/重建的情况下已经消失了多久。这样我就可以查看当天所做的更改,尝试找出原因。(而且在我的报告中看起来不错“此数据库自...以来一直没有得到妥善维护......)

由于我正在设置一项工作以快速重组受影响的表(可能是今晚),任何可以为我提供索引操作历史的解决方案都将不胜感激。如果没有,只是知道我将来可以检查这些数据将非常有帮助。

Kin*_*hah 3

SQL Server 不会维护索引上次重建的时间,而是保留上次更新统计信息的信息。

可以使用该函数找到它STATS_DATE

您可以使用Ola 的索引维护解决方案Michelle Ufford 的 - 索引碎片整理脚本。这些脚本在社区中经过了广泛的测试,并且非常灵活,因此您可以根据您的环境需求进行调整。

SQL Server SP2 for 2008R2 及更高版本有一个新的 DMF sys.dm_db_stats_properties,它会告诉您上次使用其他信息更新统计信息的时间,例如

modification_counter:自上次更新以来引导统计的列的修改次数

  • @Kin我还不太愿意立即接受“不可能”作为答案。我会继续寻找一段时间(如果时间允许),如果找到答案,可能会在这里更新。因此,我不会立即接受你的答案,希望有人能找到办法。 (2认同)