簡體   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