系統動態管理檢視與功能

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控實例Azure Synapse AnalyticsAnalytics Platform System(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的資料倉庫Microsoft Fabric 中的 SQL 資料庫

動態管理物件包括 動態管理檢視 (DMV)與 動態管理功能 (DMF)。 這些物件會回傳伺服器狀態資訊,可用來監控伺服器實例的健康狀況、診斷問題並調整效能。

動態管理物件分為 伺服器範圍資料庫範圍

查詢動態管理物件

所有動態管理物件都存在於 sys 結構中,並遵循命名慣例 dm_*

使用動態管理物件時,必須在 sys 物件名稱前加上結構。 例如,要查詢 dm_os_wait_stats 動態管理檢視,請執行以下查詢:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

下表說明如何在 Transact-SQL 中參考動態管理物件:

T-SQL 參考 動態管理檢視 動態管理功能
單段命名 No No
兩部分命名 Yes Yes
三部分命名 Yes Yes
四部分命名 Yes No

備註

動態管理物件會回傳內部且實作特定的狀態資料。 它們的結構與回傳資料可能會在未來的 資料庫引擎 版本中有所變動。 因此,未來版本中的動態管理物件可能與本版本的動態管理物件不相容。

例如,在未來的 資料庫引擎 版本中,Microsoft 可能會在任何動態管理檢視的定義中,在欄位列表末端加入欄位。 不要在生產程式碼中使用語法 SELECT * FROM dynamic_management_view_name ,因為回傳的欄位數量可能會改變,導致應用程式失效。

許可

查詢動態管理物件需要SELECT對該物件取得權限,且取決於物件的範圍及 SQL Server Database Engine 版本:

版本 伺服器範圍 資料庫範圍
SQL Server 2019(15.x)及更早版本 VIEW SERVER STATE VIEW DATABASE STATE
SQL Server 2022 (16.x) 及更新版本 VIEW SERVER PERFORMANCE STATE VIEW SERVER SECURITY STATE或是安全相關物件 VIEW DATABASE PERFORMANCE STATE VIEW DATABASE SECURITY STATE或是安全相關物件

要選擇性限制存取,請建立 master 使用者或登入,然後拒絕該使用者 SELECT 對你想封鎖的特定動態管理檢視或功能權限。 使用者之後無法從這些物件中選擇,無論資料庫上下文如何。

備註

DENY 優先於 GRANT。 例如,被 VIEW SERVER PERFORMANCE STATE 授權但被 VIEW DATABASE PERFORMANCE STATE 拒絕的使用者可以看到伺服器層級的資訊,但無法看到資料庫層級的資訊。