SQL Server索引使用情况统计何时更新?
发布时间:2020-12-12 08:54:19 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server 2008 R2,并运行以下查询以尝试使用以下SQL查看我的数据库中上次更新索引的时间: SELECT last_system_update,last_user_update,OBJECT_NAME(object_id) AS tblNameFROM sys.dm_db_index_usage_statsWHERE database_id = DB_ID('mydataba
我正在使用SQL Server 2008 R2,并运行以下查询以尝试使用以下SQL查看我的数据库中上次更新索引的时间:
SELECT last_system_update,last_user_update,OBJECT_NAME(object_id) AS tblName FROM sys.dm_db_index_usage_stats WHERE database_id = DB_ID('mydatabase') last_user_update字段是正确的,并且包含NULL,其中自上次重新启动SQL Server以来未对表进行任何更新. 当我运行以下查询来重建索引时,我希望last_system_update字段包含一个日期,以指示索引已重建: ALTER INDEX ALL ON dbo.MyTable REBUILD 但是,此字段仍为NULL.实际上,对于服务器上所有数据库中的所有索引,last_system_update字段为空(NULL). last_user_update也不会改变. 我也尝试过: UPDATE STATISTICS dbo.MyTable 但没有运气.那么这个字段何时更新?我怎么能强迫它更新? 解决方法您可以使用以下查询来确定上次更新索引的时间,该索引使用STATS_DATE() :
USE your_db; SELECT t.name AS Table_Name,i.name AS Index_Name,i.type_desc AS Index_Type,STATS_DATE(i.object_id,i.index_id) AS Date_Updated FROM sys.indexes i JOIN sys.tables t ON t.object_id = i.object_id WHERE i.type > 0 ORDER BY t.name ASC,i.type_desc ASC,i.name ASC; 我相信这只适用于SQL Server 2005或更新版本,因为sys.indexes不在SQL Server 2000中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |