Paul White Asked: 2019-01-29 04:15:34 +0800 CST2019-01-29 04:15:34 +0800 CST 2019-01-29 04:15:34 +0800 CST SQL Server 何时警告过多的内存授予? 772 产生“过度授予”执行计划警告的条件是什么? 查询内存授权检测到“ExcessiveGrant”,这可能会影响可靠性。授权大小:初始 5128 KB,最终 5128 KB,已用 16 KB。 SSMS 计划探索者 展示计划 xml <Warnings> <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" /> </Warnings> sql-server execution-plan 1 个回答 Voted Best Answer Paul White 2019-01-29T04:15:34+08:002019-01-29T04:15:34+08:00 要产生此警告: 最大使用内存必须小于授予内存的 5 % ;和 查询必须使用常规(不小)资源信号量 要使用常规资源信号量,查询必须: 已授予超过 5MB 的内存(5120 KB,640 x 8KB 页);或者 总估计计划成本超过 3 个单位,而不是微不足道的计划 服务器版本要求: SQL Server 2014 SP2 (12.0.5000) 或更高版本 SQL Server 2016 SP1 (13.0.4001) 或更高版本 SQL Server 2017 RTM (14.0.1000) 或更高版本
要产生此警告:
要使用常规资源信号量,查询必须:
服务器版本要求: