Sql-Server
SQL Server 何時警告過多的記憶體授予?
產生*“過度授予”*執行計劃警告的條件是什麼?
查詢記憶體授權檢測到“ExcessiveGrant”,這可能會影響可靠性。授權大小:初始 5128 KB,最終 5128 KB,已用 16 KB。
SSMS
計劃探索者
展示計劃 xml
<Warnings> <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" /> </Warnings>
要產生此警告:
- 最大使用記憶體必須小於授予記憶體的 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) 或更高版本