KB4522127 - FIX: Scarse prestazioni di query a causa di una bassa stima della cardinalità in SQL Server 2016 quando si usa il CE predefinito e la colonna è coperta da statistiche sia a una o più colonne

Si applica a
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomi

Si supponga di eseguire una query che implica un join o un'aggregazione in una colonna coperta da statistiche a colonna singola e a colonne multiple (in cui questa colonna non è la colonna iniziale). Se si usa lo strumento di stima della cardinalità (CE) predefinito in SQL Server 2016, è possibile che il numero di righe distinte venga sottostimato. Questo porta a un piano di esecuzione della query non ottimale, ad esempio: una stima bassa può causare una concessione di memoria insufficiente per un operatore hash, che causa la distribuzione della query a tempdb.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Risoluzione

Questo problema è stato risolto nel seguente aggiornamento cumulativo per SQL Server:

Avvertenza Per rendere effettiva questa correzione, è necessario abilitare gli aggiornamenti rapidi di query optimizer usando il flag di traccia (TF) 4199 o la configurazione con ambito database corrispondente o l'opzione dell'hint per la query.

      

Informazioni sugli aggiornamenti cumulativi per SQL Server:

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni rapide e di sicurezza incluse nell'aggiornamento cumulativo precedente. Vedere gli aggiornamenti cumulativi più recenti per SQL Server:

Soluzione alternativa

Questo problema può essere risolto aggiungendo l'hint per la query seguente:

USE HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.