Sintomi
Supponiamo che tu esegua una query che coinvolga un join o un'aggregazione in una colonna coperta sia da una colonna singola che da una colonna multipla Statistiche (in cui questa colonna non è la colonna iniziale). Se si usa Stima della cardinalità predefinita (CE) in SQL Server 2016 può sottovalutare il numero di righe distinte. Questo porta a un piano di esecuzione della query ottimale, ad esempio: la valutazione minima può causare una perdita di memoria insufficiente per un operatore hash, che causa la fuoriuscita della query in tempdb.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".
Risoluzione
Questo problema è stato risolto con l'aggiornamento cumulativo seguente per SQL Server:
Nota Per rendere effettiva questa correzione, è necessario abilitare gli aggiornamenti rapidi di query optimizer usando il flag di traccia (TF) 4199 o l'opzione di configurazione dell'ambito del database corrispondente o dell'hint di query.
Informazioni sugli aggiornamenti cumulativi per SQL Server:
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Soluzione alternativa
Questo problema può essere risolto aggiungendo l'hint di query seguente:
USARE HINT (' FORCE_LEGACY_CARDINALITY_ESTIMATION ')
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.