Sintomi
La query può essere eseguita lentamente se le condizioni seguenti sono vere:
-
La query USA aggregazioni come Raggruppa per.
-
SQL Server usa l'aggregazione hash nel piano della query.
-
Il numero stimato di valori distinti è molto inferiore al numero effettivo di valori distinti per l'aggregazione.
Quando si verifica questo problema, viene visualizzato un evento di avviso hash se si esegue il profiler o la traccia di eventi estesa.
Causa
Questo problema si verifica perché SQL Server sottovaluta la quantità di memoria necessaria. Il risultato è che i risultati di intermiedate si riversano in tempdb.
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server:
Nota Per attivare la correzione, è necessario abilitare la traccia flag 9410.
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.