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

时间:2009-06-09 15:05:52

标签: sql-server sql-server-2005 indexing maintenance

当数据库中的每个索引最后更新其统计信息时,是否有一种快速简便的方法可以列出?首选答案是查询。此外,是否可以确定统计数据的“质量”: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

1 个答案:

答案 0 :(得分: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

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