共用方式為


系統動態管理檢視

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

動態管理檢視 (DMV) 和動態管理功能 (DMF) 會傳回伺服器狀態資訊,可用來監視伺服器實例的健康情況、診斷問題及調整效能。

重要

動態管理檢視和函式會傳回內部、實作特定的狀態數據。 它們所傳回的架構和數據在未來的 SQL Server 版本中可能會變更。 因此,未來版本中的動態管理檢視和函式可能與此版本中的動態管理檢視和函式不相容。 例如,在未來的 SQL Server 版本中,Microsoft可能會藉由將數據行新增至數據行清單結尾,來增強任何動態管理檢視的定義。 建議您在實際執行程式碼中使用語法 SELECT * FROM dynamic_management_view_name ,因為傳回的數據行數目可能會變更並中斷您的應用程式。

動態管理檢視和函式有兩種類型:

  • 伺服器範圍的動態管理檢視和函式。 這些要求伺服器上的 VIEW SERVER STATE 許可權。 針對 SQL Server 2022 和更新版本,需要 VIEW SERVER PERFORMANCE STATE,或少數與安全性相關的 DMV 需要 VIEW SERVER SECURITY STATE。

  • 資料庫範圍的動態管理檢視和函式。 這些需要資料庫的 VIEW DATABASE STATE 許可權。 針對 SQL Server 2022 和更新版本,需要 VIEW DATABASE PERFORMANCE STATE,或少數與安全性相關的 DMV 需要 VIEW DATABASE SECURITY STATE。

查詢動態管理檢視

您可以使用兩部分、三部分或四部分名稱,在 Transact-SQL 語句中參考動態管理檢視。 另一方面,您可以使用兩部分或三部分名稱,在 Transact-SQL 語句中參考動態管理功能。 動態管理檢視和函式無法使用單一部分名稱在 Transact-SQL 語句中參考。

所有動態管理檢視和函式都存在於 sys 架構中,並遵循此命名慣例dm_*。 當您使用動態管理檢視或函式時,您必須使用 sys 架構來前置檢視或函式的名稱。 例如,若要查詢動態管理檢視dm_os_wait_stats,請執行下列查詢:

SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats;

所需的權限

若要查詢動態管理檢視或函式,需要物件和 VIEW SERVER STATE 或 VIEW DATABASE STATE 許可權的 SELECT 許可權。 這可讓您選擇性地限制使用者或登入動態管理檢視和函式的存取。 若要這樣做,請先在 中 master 建立使用者,然後拒絕您不想存取之動態管理檢視或函式的使用者 SELECT 許可權。 之後,無論使用者的資料庫內容為何,使用者都無法從這些動態管理檢視或函式中選取。

注意

因為 DENY 優先,如果使用者已獲授與 VIEW SERVER STATE 許可權,但拒絕 VIEW DATABASE STATE 許可權,則使用者可以查看伺服器層級資訊,但看不到資料庫層級資訊。

本節內容

動態管理檢視和函式已組織成下列類別。