繁体   English   中英

查询dm_db_index_usage_stats返回空行

[英]Querying dm_db_index_usage_stats returns empty row

我有一个用户告诉我,我们的应用程序中的某些数据已更改。

使用此示例 ,我在填充应用程序中数据的表上运行以下查询:

SELECT OBJECT_NAME(OBJECT_ID) AS TableName,
 last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'Mydatabase')
AND OBJECT_ID=OBJECT_ID('mytable')

我没有返回任何行,因此似乎表中没有更新的数据历史记录?

我跑了

SELECT OBJECT_NAME(OBJECT_ID) AS TableName,
 last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'Mydatabase')

我得到了13行,尽管其中有几行的TableName为null。

第一点:

每当启动SQL Server(MSSQLSERVER)服务时,计数器都将初始化为空。 此外,每当数据库分离或关闭时(例如,由于AUTO_CLOSE设置为ON),与数据库关联的所有行都将被删除。

因此,如果您的服务器重新启动或您没有统计信息。

第二点:

调用OBJECT_NAME函数时,请使用database_id参数:

SELECT OBJECT_NAME(OBJECT_ID, DB_ID( 'Mydatabase')) AS TableName,
 last_user_update,*
FROM sys.dm_db_index_usage_stats
WHERE database_id = DB_ID( 'Mydatabase')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM