mssql sqlserver 如何获取数据库索引数据最后一次变动时间?


摘要:
下文讲述sqlserver中索引数据最后一次变动时间的方法分享,如下所示:
实验环境:sql server 2008 R2


在sqlserver的日常运维中,我们偶尔需要观察sqlserver中指定索引数据最后一次变动时间,下文将举例分析查看索引数据最后一次变动时间的方法

实现思路:
由于每条索引都会创建相应的统计信息,
那么我们可用通过查阅sys.stats系统视图获取索引所对应的变化时间

---创建测试数据表
SELECT * INTO [maomao365.com] FROM sys.tables

---创建索引 
CREATE INDEX pk_maomao ON [maomao365.com](object_id);
go

 
SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
CREATE INDEX pk_maomao_2 ON [maomao365.com](name);

go
SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
ALTER INDEX pk_maomao_2 ON [maomao365.com] REBUILD;
go

SELECT  name AS [统计名称] ,
        STATS_DATE(object_id, stats_id) AS [索引数据变动时间]
FROM    sys.stats
WHERE   object_id = OBJECT_ID('dbo.[maomao365.com]')
         
go
drop index pk_maomao  ON [maomao365.com]
go
truncate table [maomao365.com]
drop     table [maomao365.com]

相关阅读:
mssql 系统表 sys.stats 功能简介