什么时候索引统计上次更新了?

KM.*_*KM. 3 sql-server indexing maintenance sql-server-2005

是否有一种快速简便的方法来列出数据库中的每个索引最后更新其统计信息?首选答案是查询.此外,是否可以确定统计数据的"质量":FULLSCAN,SAMPLE n等.

编辑
这适用于我需要的东西,@OrbMan的一个小模块很棒的答案......

SELECT
    STATS_DATE(i.object_id, i.index_id) AS LastStatisticsDate
        ,o.Name AS TableName
        ,i.name AS IndexName
    FROM sys.objects            o
        INNER JOIN sys.indexes  i ON o.object_id = i.object_id
    WHERE o.is_ms_shipped=0
    ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 7

你可以这样做:STATS_DATE(table_id,index_id)

所以:

USE AdventureWorks;
GO
SELECT 'Index Name' = i.name, 'Statistics Date' = STATS_DATE(i.object_id, i.index_id)
FROM sys.objects o
JOIN sys.indexes i ON o.name = 'Address' AND o.object_id = i.object_id;
GO
Run Code Online (Sandbox Code Playgroud)

其中Address是要检查其索引的表的名称.