Quando viene segnalato un errore eccessivo della memoria in SQL Server?


18

Quali sono le condizioni che generano un avviso relativo al piano di esecuzione "Sovvenzione eccessiva" ?

La concessione della memoria di query ha rilevato "ExcessiveGrant", che potrebbe influire sull'affidabilità. Dimensione della concessione: 5128 KB iniziali, 5128 KB finali, 16 KB utilizzati.

SSMS

Piano SSMS

Proprietà SSMS

Plan Explorer

Plan Explorer

Showplan xml

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

Risposte:


19

Per produrre questo avviso:

  1. La memoria massima utilizzata deve essere inferiore al 5% della memoria concessa; E
  2. La query deve utilizzare il semaforo di risorse normale (non piccolo)

Per utilizzare il semaforo delle risorse normale, la query deve:

  • Hanno concesso di memoria oltre 5 MB (5120 KB, 640 x 8KB pagine); O
  • Hanno un costo totale stimato di oltre 3 unità e non è un piano banale

Requisiti della versione del server :

  • SQL Server 2014 SP2 (12.0.5000) o successivo
  • SQL Server 2016 SP1 (13.0.4001) o successivo
  • SQL Server 2017 RTM (14.0.1000) o successivo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.