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_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)