適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控實例
Azure Synapse Analytics
Analytics 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 拒絕的使用者可以看到伺服器層級的資訊,但無法看到資料庫層級的資訊。