SQL Serverが過剰なメモリ許可を警告するのはいつですか?


18

「過剰付与」実行計画の警告を生成する条件は何ですか?

クエリメモリ許可が「ExcessiveGrant」を検出しました。これは信頼性に影響を与える可能性があります。許可サイズ:初期5128 KB、最終5128 KB、使用済み16 KB。

SSMS

SSMSプラン

SSMSプロパティ

計画エクスプローラー

計画エクスプローラー

Showplan XML

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

回答:


19

この警告を生成するには:

  1. 最大使用メモリがなければならない、5%未満付与メモリ。そして
  2. クエリでは、通常の(小さくない)リソースセマフォを使用する必要があります

通常のリソースセマフォを使用するには、クエリで以下を行う必要があります。

  • 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)以降
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.