3

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

1 回答 1

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 是您要检查其索引的表的名称。

于 2009-06-09T15:12:27.793 回答