查询SQL Server Index上次Rebuild时间

当SQL Server重建索引后,可通过查询统计信息更新时间来判断哪些索引已被重建。此方法虽不完全精确,但能提供一定参考依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

朋友有一个Rebuild IndexJob执行一般停掉了,问我是否可以查看哪些Index已经被Rebuild过了。本来以为Sys.index或者Sys.objects会存储类似的信息,结果没有找到。

 

从网上查了一下,SQL Server没有存储类似的信息。但是因为Rebuild Index会自动更新统计信息,而统计信息的更新时间是可以获得的。所以我们可以大致根据统计信息的时间来估计。

 

因为统计信息的更新也有可能是达到更新的阀值所做的更新,所以不是非常的准确。

 

具体的脚本如下:

 

SELECTOBJECT_NAME(object_id) [TableName],

       name [IndexName],

STATS_DATE(object_id, stats_id)[LastStatsUpdate]

FROM   sys.stats

WHERE  name NOTLIKE'_WA%'-- 

AND  STATS_DATE(object_id, stats_idIS NOT NULL

AND  OBJECTPROPERTY(object_id,'IsMSShipped')= 0 --查询用户自定义的

ORDERBY TableName, IndexName

 

 

-----代码来自于:http://stackoverflow.com/questions/2831293/tsql-know-when-index-rebuild-reorg-or-updatestatistics-was-last-run-on-sql-ser

 

可以根据自己的增加条件筛选。

 

 

本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1340274


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值