3 .6 .3 内存问题诊断

Posted zhouwansheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3 .6 .3 内存问题诊断相关的知识,希望对你有一定的参考价值。

3 .6 .3 内存问题诊断
遇到内存问题时,首先要检查SQL Server的内存使用情况,可以使用性能监视器或者 DMV来查看。通过性能监视器可以监控下面的计数器。
□ Granted Workspace Memory (K B ),当前查询正在使用的总内存大小。 □ Maximum Workspace Memory (KB), SQL Server标记预留给某个查询的总内存大小c □ Memory Grants Pending,正在队列中的内存grants数量。 □ Memory Grants Outstanding,正在使用的内存 grants 数量。
这里说明几个术语。
□ Workspace : 指在查询过程中,进行hash和排序操作时,临时存储数据的结果集所 用的内存。如果在执行计划中看到出现了 hash‘或者sort操作符,那么就表示会使用 这部分的内存完成处理。
□ Memory Grants : 已经分配给查询的那部分内存。可以用过sys.dm_exec_query_ memory grants 查看。

 

另外,RESOURCE_SEMAPHORE等待状态是针对memory grants的,所以如果在
sys.dm_os_wait_stats这个DMV中看到这个等待类型存在很久,并且处于前几位,可能需 要检查内存是否足够快。如果内存授予(memory grants)太久,会导致查询超时,可以使
用 SQL trace或者执行计划查看是否存在hash或者sort warning这些信息。








以上是关于3 .6 .3 内存问题诊断的主要内容,如果未能解决你的问题,请参考以下文章

(超详解)JVM-内存结构

JVM专题-虚拟机栈

如何使用Windows内存诊断工具发现内存问题

JVM专题-堆(heap)

如何使用转储文件来诊断内存泄漏?

求JetBrains dotMemory(内存分析工具) V2019.3.3 完整版网盘资源