sql-server - Tsql,知道上次在 SQL 服务器上运行索引重建、重组或更新统计的时间

标签 sql-server

使用 Tsql,我如何知道上次在 SQL 服务器(2000、2005 或 2008)上运行索引重建、重组或更新统计的时间?

问候

最佳答案

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

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

看看优Index Maintenance Script由米歇尔·乌福德撰写

关于sql-server - Tsql,知道上次在 SQL 服务器上运行索引重建、重组或更新统计的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831293/

相关文章:

c# - LINQ 查询 if 条件外部参数

c# - 没有主键时如何防止使用SqlBulkCopy插入重复记录

sql - 在 SQL Server 中使用表变量

sql-server - 自增主键生成奇怪的值

SQL 如何将两列数据转换为不同的列?

mysql - 从库存中获取可用设备的 SQL 语句

SQL Server 错误 : the pre-login handshake failed or the server was unable to respond back in time

sql - SQL Server 中 SUBSTRING 与 LEFT 的性能

c# - 如何访问数据流脚本组件中现有的 ADO.NET 连接管理器

c# - 使用 Entity Framework,我应该在存储过程中使用 RETURN 还是 SELECT?