我最近遇到了一个数据库,它在大表上具有非常高的碎片。
页数 > 1'000'000,碎片为 99,...
我想知道这张表在没有重组/重建的情况下已经走了多长时间。这样我就可以查看在该日期所做的更改,以尝试找到原因。(在我的报告中看起来不错“这个数据库从那时起就没有得到适当的维护......)
由于我正在设置一项工作以快速重组受影响的表(可能是今晚),因此任何可以为我提供索引操作历史的解决方案将不胜感激。如果没有,只要知道我将来可以检查这些数据就会很有帮助。
我最近遇到了一个数据库,它在大表上具有非常高的碎片。
页数 > 1'000'000,碎片为 99,...
我想知道这张表在没有重组/重建的情况下已经走了多长时间。这样我就可以查看在该日期所做的更改,以尝试找到原因。(在我的报告中看起来不错“这个数据库从那时起就没有得到适当的维护......)
由于我正在设置一项工作以快速重组受影响的表(可能是今晚),因此任何可以为我提供索引操作历史的解决方案将不胜感激。如果没有,只要知道我将来可以检查这些数据就会很有帮助。
SQL Server 不维护索引上次重建的时间,而是保留上次更新统计信息的时间。
可以使用该
STATS_DATE
功能找到。您可以使用Ola 的索引维护解决方案或Michelle Ufford 的 - 索引碎片整理脚本。这些脚本在社区中得到了广泛的测试,并且非常灵活,因此您可以根据您的环境中的需要进行调整。
适用于 2008R2 及更高版本的 SQL Server SP2 有一个新的 DMF
sys.dm_db_stats_properties
,它会告诉您上次使用其他信息更新统计信息的时间,例如正如 Kin 上面提到的,由于 SQL Server 不存储此信息,因此无法获取此信息。请参阅technet 上的这篇文章。由于您使用的是 Ola 的脚本,除非您更改了默认值,否则 IndexOptimize 作业的输出应该与错误日志位于同一位置。