Sintomi
La logica di stima della cardinalità nota come stima della cardinalità (CE) è stata riprogettata in SQL Server 2014 (livelli di compatibilità 120) e SQL Server 2016 (livelli di compatibilità 130) per migliorare la qualità dei piani di query. Tuttavia, quando si compila una query complessa che contiene molti join con un operatore DISTINCT o GROUP BY, la compilazione può richiedere molto più tempo del previsto.
Risoluzione
Questo aggiornamento che risolve questo problema è incluso nel Service Pack 1 per SQL Server 2016.Nota Dopo aver installato questo aggiornamento, è necessario impostare il contrassegno di traccia 4199 per abilitare la correzione. Per impostare il contrassegno di traccia 4199, vedere l'argomento contrassegni di traccia (Transact-SQL) in MSDN.
Ogni nuova build per SQL Server 2016 contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella build precedente. È consigliabile installare la Build più recente per SQL Server 2016.
Soluzione alternativa
Per ovviare a questo problema, utilizzare uno dei seguenti metodi:
-
Usare il contrassegno di traccia 9481 per impostare il modello di stima della cardinalità di query Optimizer in SQL Server 2012 o in una versione precedente.
-
Modificare il livello di compatibilità del database in SQL Server 2012 (110) o in una versione precedente.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.