sys.dm_exec_query_resource_semaphores (Transact-SQL)
傳回目前查詢資源信號狀態的資訊。sys.dm_exec_query_resource_semaphores 提供一般查詢執行的記憶體狀態,並可讓您判斷系統是否可以存取足夠的記憶體。這個檢視可以補充從 sys.dm_os_memory_clerks 取得的記憶體資訊,以提供完整的伺服器記憶體狀態。sys.dm_exec_query_resource_semaphores 會為一般資源信號傳回一個資料列,並為小型查詢資源信號傳回另一個資料列。
資料行名稱 |
資料類型 |
描述 |
---|---|---|
resource_semaphore_id |
smallint |
資源信號的非唯一識別碼。一般資源信號為 0,而小型查詢資源信號則為 1。
附註
在 SQL Server 2008 之前的 SQL Server 版本中,此識別碼是唯一的。這項變更可以影響疑難排解的查詢執行。如需詳細資訊,請參閱本主題後面的<備註>一節。
|
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 |
這個資源信號所屬資源集區的識別碼。 |
Permissions
需要伺服器的 VIEW SERVER STATE 權限。
備註
使用包含 ORDER BY 或彙總之動態管理檢視的查詢,有可能會增加記憶體耗用量,但也因此可協助它們正在進行疑難排解的問題。
使用 sys.dm_exec_query_resource_semaphores 來進行疑難排解,但是不要在將會使用 SQL Server 未來版本的應用程式中加入它。
資源管理員功能可讓資料庫管理員在資源集區間散發伺服器資源,最多可達 20 個集區。在 SQL Server 2008 中,每個集區的行為都像是一個小型的獨立伺服器執行個體,而且需要 2 個信號。從 sys.dm_exec_query_resource_semaphores 傳回的資料列數目最多可達 SQL Server 2005 中所傳回之資料列的 20 倍以上。