我们在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,它缓存具有等待的特定事务并查看其执行计划.我并不认为它与实际的系统或用户交易有关.