Sintomi
La query potrebbe essere eseguita lentamente se si verificano le condizioni seguenti:
- La query usa aggregazioni come group by.
- SQL Server usa l'aggregazione hash nel piano di query.
- Il numero stimato di valori distinti è molto inferiore al numero effettivo di valori distinti per l'aggregato.
Quando si verifica questo problema, viene visualizzato un evento di avviso hash se si esegue la traccia del profiler o dell'evento esteso.
Causa
Questo problema si verifica perché SQL Server sottostima la quantità di memoria concessa necessaria. Ciò comporta la distribuzione dei risultati intermedi a tempdb.
Risoluzione
Il problema è stato risolto per la prima volta nell'aggiornamento cumulativo seguente di SQL Server:
Nota: è necessario abilitare il flag di traccia 9410 per attivare questa correzione.
Consiglio: installare l'aggiornamento cumulativo più recente per SQL Server
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:
- Aggiornamento cumulativo più recente per SQL Server 2014 SP1
- Aggiornamento cumulativo più recente per SQL Server 2016
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.