SQL Server RESOURCE_SEMAPHORE 等待状态
作者:网络转载 发布时间:[ 2013/2/1 10:12:53 ] 推荐标签:
步骤3:
然后使用DMV:sys.dm_exec_query_memory_grants来获得在等待队列中的查询所需要内存的详细信息。这些查询的grant_time和granted_memory_kb可能为null。也可以从这个DMV中得到plan_handle和sql_handle:
SELECT *
FROM sys.dm_exec_query_memory_grants
我们要关注的是下面3列:

步骤4:
现在将要找到集中消耗内存的查询,可以查看所有等待查询中的需求内存。当看到这部分内存太大的时候,然后找到这些查询的plan_handle,并查看它们的执行计划:
SELECT TOP 10
*
FROM sys.dm_exec_query_memory_grants
步骤5:
把步骤4中查询的plan_handle的数据复制,然后执行:
SELECT * FROM sys.dm_exec_sql_text(sql_handle)
注意替换括号中的sql_handle。然后查看其执行计划。
总结:
通过上面的步骤找到耗费内存的查询后,应该调整语句,使其占用更少的资源。以便解决内存压力。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。

sales@spasvo.com