メモリ付与の警告を調査する方法は?

Jan 01 2021

プランキャッシュのクエリからこの警告を見た

<Warnings>
     <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="2751552" GrantedMemory="2751552" MaxUsedMemory="768" />
</Warnings>

RequestedMemoryはバイトまたはキロバイトを表しますか?

この警告の原因をどのようにトラブルシューティングしますか?

回答

1 J.D. Jan 01 2021 at 08:53

これは通常、Cardinality Estimateの問題が原因で発生します(他の原因も考えられますが)。あなたは見なければならない実際の実行計画とあなたが比較することにより、任意の誤推定を持っているかどうかを確認行の推定数は、総実際の行数実行プランを使用して質問を更新すると([プランの貼り付け]にアップロードして質問にリンクできます)、過剰なメモリ付与の問題の原因についてより適切な方向性を示すことができます。