我们在SQL server 2016中有一个服务器环境。服务器是虚拟化的,这意味着它共享它的内存和cpu。
最近,如果压力很大,比如排序、构建哈希表等,我们会看到内存使用量的大幅增长,这是意料之中的。
然而,我们看到许多
MEMORY_ALLOCATION_EXT
RESERVED_MEMORY_ALLOCATION_EXT等待。
因此服务器有足够的内存,我们最近也将内存增加了一倍,但内存仍在等待。
从监控服务器状态来看,它似乎不需要更多内存,但您建议是什么导致了这些等待?
发布于 2017-08-15 12:09:25
Paul Randall says that it is safe to ignore "MEMORY_ALLOCATION_EXT",他的指导非常可靠;看看查询上的谓词"WHERE [wait_type] NOT IN"。
对于RESERVED_MEMORY_ALLOCATION_EXT,我会设置一个Extended Event来缓存哪些特定的事务正在等待,并查看它们的执行计划。我不确定它是否与实际的系统或用户事务有关。
发布于 2022-03-01 13:56:15
它发生在从内部SQL Server内存池或操作系统分配内存时。因此,最好在查询运行时检查负载。
https://stackoverflow.com/questions/39929782
复制相似问题