sys.dm_exec_query_resource_semaphores (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics 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_kb max_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)