sql-server – 我怎样才能对MEMORY_ALLOCATION_EXT进行故障排除等待?

我们在SQL Server 2016中有一个服务器环境.服务器是虚拟化的,这意味着它共享其内存和CPU.

最近如果压力很大,即对构建哈希表等进行排序,我们会看到可预期的内存使用量大幅增长.

但是我们看到很多

MEMORY_ALLOCATION_EXT 

RESERVED_MEMORY_ALLOCATION_EXT

等待.

所以服务器有足够的内存,我们最近也加倍了内存,但内存等待仍然存在.

从监视服务器状态看,它似乎不需要更多的内存,但你会建议这些等待的原因是什么?

最佳答案 Paul Randall
says that it is safe to ignore“MEMORY_ALLOCATION_EXT”,他的指导非常可靠;查看查询中的谓词“WHERE [wait_type] NOT IN”.

对于RESERVED_MEMORY_ALLOCATION_EXT,我设置了一个Extended Event,它缓存具有等待的特定事务并查看其执行计划.我并不认为它与实际的系统或用户交易有关.

点赞