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

时间:2016-10-08 07:15:36

标签: sql-server memory database-administration

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

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

但是我们看到很多

MEMORY_ALLOCATION_EXT 

RESERVED_MEMORY_ALLOCATION_EXT

等待。

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

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

1 个答案:

答案 0 :(得分:1)

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

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