如果要查询表或Indexed View上最后一次更新统计信息的时间,使用STATS_DATE 函数
STATS_DATE 函数 返回表或索引视图上统计信息的最新更新的日期
Syntax
STATS_DATE ( object_id , stats_id )
stats_id是统计信息对象的ID,可以通过sys.stats来查看Stats_ID。
如果统计信息对应于索引,则 sys.stats 目录视图中的 stats_id 值与 sys.indexes 目录视图中的 index_id 值相同;如果统计信息不对应于索引,则它们将位于 sys.stats 结果中,但是不在 sys.indexes 结果中。
示例
1,创建示例数据
if object_id(‘dbo.dt_test‘) is not null
drop table dbo.dt_test
create table dbo.dt_test
(
id int,
code int,
name varchar(10)
)
create clustered index cix_dt_test_idcode
on dbo.dt_test(id,code)
insert into dbo.dt_test
values(1,1,‘a‘),(1,2,‘b‘),
(2,1,‘c‘),(2,2,‘d‘),
(3,1,‘e‘),(3,2,‘f‘)
2,查看dt_test表上的Stats对象的ID
select * from sys.stats s where s.[object_id]=object_id(‘dbo.dt_test‘)
3,查看统计信息最后更新的时间
select stats_date(s.object_id,s.stats_id) as StatsLastUpdatedDatetime,* from sys.stats s where s.[object_id]=object_id(‘dbo.dt_test‘)
4,由于Stats对象是索引,Stats_ID和Index_ID是相同的,可以使用sys.indexes来查询统计最后更新的时间
select stats_date(i.object_id,i.index_id) as StatsLastUpdatedDatetime,* from sys.indexes i where i.[object_id]=object_id(‘dbo.dt_test‘)
原文:http://www.cnblogs.com/ljhdo/p/4875407.html