Tsql,知道什么时候索引重建,reorg或updatestatistics最后在SQL服务器上运行

Man*_*jot 3 sql-server

使用Tsql,我怎么知道上次在SQL Server(2000,2005或2008)上运行Index rebuild,reorg或updatestatistics?

问候

Joh*_*som 10

SQL Server不存储此信息.您可以根据上次更新给定索引的统计信息的日期获得"近似"估计值,因为REBUILD操作还将更新索引的统计信息.

以下是使用AdventureWorks数据库的示例:

USE AdventureWorks;
GO

SELECT name AS Stats,
STATS_DATE(object_id, stats_id) AS LastStatsUpdate
FROM sys.stats
WHERE object_id = OBJECT_ID('Sales.SalesOrderDetail')
and left(name,4)!='_WA_';

GO
Run Code Online (Sandbox Code Playgroud)

您可能需要考虑使用SQL Server的许多免费索引调整维护脚本之一.这些提供了一种方法来存储在给定数据库上执行的索引操作的详细信息,从而提供有关上次重建索引的信息.

看看Michelle Ufford写的优秀索引维护脚本