Kiedy program SQL Server ostrzega o nadużyciu pamięci?

18

Jakie są warunki, które powodują wyświetlenie ostrzeżenia o planie wykonania „Nadwyżka dotacji” ?

Przyznanie pamięci zapytania wykryło „ExcessiveGrant”, co może wpłynąć na niezawodność. Rozmiar dotacji: początkowy 5128 KB, końcowy 5128 KB, używany 16 KB.

SSMS

Plan SSMS

Właściwości SSMS

Plan Explorer

Plan Explorer

Showplan xml

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>
Paul White przywraca Monikę
źródło

Odpowiedzi:

19

Aby wygenerować to ostrzeżenie:

  1. Maksymalne stosowane pamięci musi być mniejsza niż 5%, udzielonego pamięci; I
  2. Kwerenda musi używać zwykłego (nie małego) semafora zasobu

Aby użyć zwykłego semafora zasobu, zapytanie musi:

  • Zostały przyznane ponad 5MB pamięci (5120 KB, 640 x 8 KB stron); LUB
  • Całkowity szacunkowy koszt planu wynosi ponad 3 jednostki i nie jest to plan trywialny

Wymagania dotyczące wersji serwera :

  • SQL Server 2014 SP2 (12.0.5000) lub nowszy
  • SQL Server 2016 SP1 (13.0.4001) lub nowszy
  • SQL Server 2017 RTM (14.0.1000) lub nowszy
Paul White przywraca Monikę
źródło