sys.dm_exec_query_memory_grants
新建日期: 2006 年 4 月 14 日
返回已经获得内存授予的查询的有关信息,或仍需执行内存授予的查询的有关信息。无需等待内存授予的查询将不会出现在此视图中。
列名 | 数据类型 | 说明 |
---|---|---|
session_id |
smallint |
正在运行查询的会话 ID (SPID)。 |
request_id |
int |
请求的 ID。在会话的上下文中是唯一的。 |
scheduler_id |
int |
正在计划查询的计划程序的 ID。 |
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 |
查询正在等待的资源信号量的 ID。 |
queue_id |
smallint |
查询等待内存授予时所在等待队列的 ID。如果已授予内存,则为 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 文本。 |
权限
需要对服务器具有 VIEW SERVER STATE 权限。
备注
查询超时的典型调试情况可能如下所示:
- 使用 sys.dm_os_memory_clerks、sys.dm_os_sys_info 和各种性能计数器检查总体系统内存状态。
- 检查 sys.dm_os_memory_clerks(其中
type = 'MEMORYCLERK_SQLQERESERVATIONS'
)中的查询执行内存预留。 - 使用 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
与执行有关的动态管理视图和函数