sys.dm_exec_query_memory_grants
新增: 2006 年 4 月 14 日
傳回已取得記憶體授權或是仍然需要記憶體授權來執行的查詢。不需要等候記憶體授權的查詢將不會出現在此檢視中。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
session_id |
smallint |
執行此查詢的工作階段識別碼 (SPID)。 |
request_id |
int |
要求的識別碼。在工作階段的內容中是唯一的。 |
scheduler_id |
int |
排程此查詢的排程器識別碼。 |
dop |
smallint |
此查詢之平行處理原則的程度。 |
request_time |
datetime |
此查詢要求記憶體授權的日期和時間。 |
grant_time |
datetime |
授與記憶體給此查詢的日期和時間。如果尚未授與記憶體,則為 NULL。 |
requested_memory_kb |
bigint |
要求的記憶體總數 (以 KB 為單位)。 |
granted_memory_kb |
bigint |
實際授與的記憶體總數 (以 KB 為單位)。如果尚未授與記憶體,則可能為 NULL。就一般情況而言,此值應該與 requested_memory_kb 相同。對於索引建立,除了一開始授與的記憶體之外,伺服器還可以視需求額外授與記憶體。 |
required_memory_kb |
bigint |
執行此查詢所需的最小記憶體 (以 KB 為單位)。requested_memory_kb 與此數目相同或大於此數目。 |
used_memory_kb |
bigint |
目前使用的實體記憶體 (以 KB 為單位)。 |
max_used_memory_kb |
bigint |
到目前為止使用的最大實體記憶體 (以 KB 為單位)。 |
query_cost |
float |
估計的查詢成本。 |
timeout_sec |
int |
此查詢放棄記憶體授權要求之前的逾時秒數。 |
resource_semaphore_id |
smallint |
此查詢正在等候的資源信號識別碼。 |
queue_id |
smallint |
此查詢等候記憶體授權時所在的等候中佇列識別碼。如果已經授與記憶體,則為 NULL。 |
wait_order |
int |
在指定的 queue_id 內等候中查詢的順序。如果其他查詢取得記憶體授權或逾時,則給定查詢的此值可能會變更。如果已經授與記憶體,則為 NULL。 |
is_next_candidate |
bit |
下一個記憶體授權的候選。 1 = 是 0 = 否 NULL = 已經授與記憶體。 |
wait_time_ms |
bigint |
等候時間 (以毫秒為單位)。如果已經授與記憶體,則為 NULL。 |
plan_handle |
varbinary(64) |
此查詢計劃的識別碼。使用 sys.dm_exec_query_plan 來擷取實際的 XML 計劃。 |
sql_handle |
varbinary(64) |
此查詢的 Transact-SQL 文字識別碼。使用 sys.dm_exec_sql_text 取得實際的 Transact-SQL 文字。 |
Permissions
需要伺服器的 VIEW SERVER STATE 權限。
備註
查詢逾時的一般偵錯狀況可能如下所示:
- 使用 sys.dm_os_memory_clerks、sys.dm_os_sys_info 以及各種效能計數器檢查整個系統記憶體狀態。
- 在
type = 'MEMORYCLERK_SQLQERESERVATIONS'
所在的 sys.dm_os_memory_clerks 中檢查執行查詢的記憶體保留。 - 使用 sys.dm_exec_query_memory_grants 檢查等候授權的查詢。
- 使用 sys.dm_exec_requests 進一步檢查需要大量記憶體的查詢。
- 如果懷疑有失控的查詢,請從 sys.dm_exec_query_plan 檢查顯示計劃,並從 sys.dm_exec_sql_text 檢查批次文字。
使用含有 ORDER BY 或彙總之動態管理檢視的查詢,有可能增加記憶體耗用量,但也因此可協助它們正在進行疑難排解的問題。sys.dm_exec_query_memory_grants 是 SQL Server 2005 Service Pack 1 中的新功能。在 sys.dm_exec_query_memory_grants 中的資訊是 SQL Server 2005 的內部實作特有的,而且會在下一版的 SQL Server 中改變。使用 sys.dm_exec_query_memory_grants 來進行疑難排解,但是不要在將會使用 SQL Server 未來版本的應用程式中加入它。
請參閱
參考
sys.dm_exec_query_resource_semaphores
執行相關動態管理檢視和函數