分享方式:


sys.dm_exec_query_resource_semaphores (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

傳回 SQL Server 中目前查詢資源號志狀態的相關信息。 sys.dm_exec_query_resource_semaphores提供一般查詢執行記憶體狀態,並可讓您判斷系統是否可以存取足夠的記憶體。 此檢視可補充從 sys.dm_os_memory_clerks 取得的記憶體資訊,以提供伺服器記憶體狀態的完整圖片。 sys.dm_exec_query_resource_semaphores針對一般資源旗號傳回一個數據列,另一個數據列則傳回小型查詢資源旗號。 小型查詢號誌有兩個需求:

  • 要求的記憶體授與應小於 5 MB

  • 查詢成本應小於 3 個成本單位

注意

若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用 名稱 sys.dm_pdw_nodes_exec_query_resource_semaphores。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。

資料行名稱 資料類型 描述
resource_semaphore_id smallint 資源號誌的非統一標識碼。 0 用於一般資源號誌,1 用於小型查詢資源信號。
target_memory_kb bigint 以 KB 為單位授與使用目標。
max_target_memory_kb bigint 以 KB 為單位的最大潛在目標。 小型查詢資源號誌的NULL。
total_memory_kb bigint 資源號志以 KB 為單位保留的記憶體。 如果系統處於記憶體壓力之下,或經常授與強制最小記憶體,此值可能會大於 target_memory_kbmax_target_memory_kb 值。 記憶體總計是可用和已授與記憶體的總和。
available_memory_kb bigint 記憶體可用以 KB 為單位的新授與。
granted_memory_kb bigint 以 KB 為單位的總授與記憶體。
used_memory_kb bigint 實體使用的部分授與記憶體以 KB 為單位。
grantee_count int 已滿足其授與的作用中查詢數目。
waiter_count int 等候授與滿足的查詢數目。
timeout_error_count bigint 伺服器啟動後的逾時錯誤總數。 小型查詢資源號誌的NULL。
forced_grant_count bigint 自伺服器啟動后強制最小記憶體授與總數。 小型查詢資源號誌的NULL。
pool_id int 此資源旗號所屬之資源集區的標識碼。
pdw_node_id int 適用於:Azure Synapse Analytics、Analytics Platform System (PDW)

此散發節點的標識碼。

權限

在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE 權限。

在 SQL 資料庫 基本、S0 和 S1 服務目標上,以及彈性集區中的資料庫,需要伺服器管理員帳戶、Microsoft Entra 系統管理員帳戶,或伺服器角色的成員##MS_ServerStateReader##資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE 權限或 ##MS_ServerStateReader## 伺服器角色的成員資格。

SQL Server 2022 及更新版本的權限

需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。

備註

使用包含 ORDER BY 或匯總之動態管理檢視的查詢可能會增加記憶體耗用量,因而導致其進行疑難解答的問題。

使用 sys.dm_exec_query_resource_semaphores 進行疑難解答,但不包含在將使用未來 SQL Server 版本的應用程式中。

資源管理員功能可讓資料庫管理員在資源集區之間散發伺服器資源,最多64個集區。 在 SQL Server 2012 (11.x) 和更新版本中,每個集區的行為就像小型獨立伺服器實例,而且需要 2 個旗號。

另請參閱

執行相關的動態管理檢視和函數 (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)