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 权限。

备注

查询超时的典型调试情况可能如下所示:

如果查询使用的动态管理视图中包括 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
与执行有关的动态管理视图和函数

帮助和信息

获取 SQL Server 2005 帮助