Wann warnt SQL Server vor einer übermäßigen Speicherzuweisung?

18

Unter welchen Bedingungen wird eine Warnung zum Ausführungsplan "Übermäßige Gewährung" ausgegeben?

Die Speicherzuweisung für Abfragen hat "ExcessiveGrant" festgestellt, was sich auf die Zuverlässigkeit auswirken kann. Zuschussgröße: anfänglich 5128 KB, endgültig 5128 KB, verwendet 16 KB.

SSMS

SSMS-Plan

SSMS-Eigenschaften

Plan Explorer

Plan Explorer

Showplan xml

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>
Paul White sagt GoFundMonica
quelle

Antworten:

19

So erstellen Sie diese Warnung:

  1. Der maximal belegte Arbeitsspeicher muss weniger als 5% des gewährten Arbeitsspeichers betragen. UND
  2. Die Abfrage muss das reguläre (nicht kleine) Ressourcensemaphor verwenden

Um das reguläre Ressourcensemaphor zu verwenden, muss die Abfrage:

  • Haben gewährt Speicher über 5 MB (5120 KB, 640 x 8 KB - Seiten); ODER
  • Haben Sie eine geschätzte Gesamtkosten von mehr als 3 Einheiten und kein trivialer Plan

Server - Version Anforderungen :

  • SQL Server 2014 SP2 (12.0.5000) oder höher
  • SQL Server 2016 SP1 (13.0.4001) oder höher
  • SQL Server 2017 RTM (14.0.1000) oder höher
Paul White sagt GoFundMonica
quelle