SQL Server何时会发出有关过多的内存授予的警告?


18

产生“过度拨款”执行计划警告的条件是什么?

查询内存授权检测到“ ExcessiveGrant”,这可能会影响可靠性。授予大小:初始5128 KB,最终5128 KB,已用16 KB。

短信服务

SSMS计划

SSMS属性

计划浏览器

计划浏览器

Showplan XML

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>

Answers:


19

产生此警告:

  1. 最大使用存储器必须是小于5%的授予存储器;
  2. 查询必须使用常规(不小的)资源信号量

要使用常规资源信号量,查询必须:

  • 授予内存5MB以上(5120 KB,640×8KB页); 要么
  • 预计计划总成本超过3个单位,并非微不足道的计划

服务器版本要求

  • SQL Server 2014 SP2(12.0.5000)或更高版本
  • SQL Server 2016 SP1(13.0.4001)或更高版本
  • SQL Server 2017 RTM(14.0.1000)或更高版本
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.