Simptome
Să presupunem că ați rulat o interogare care implică o asociere sau o agregare într-o coloană acoperită de coloană unică și coloană multiplă statistice (în care această coloană nu este coloana principală). Dacă utilizați Estimarea implicită a Cardinalității (CE) în SQL Server 2016, aceasta poate subestima numărul de rânduri distincte. Acest lucru conduce la un plan de execuție de interogare sub optime (de exemplu: estimarea scăzută poate provoca acordarea de memorie insuficientă pentru un operator hash, care determină ca interogarea să se scurgă în tempdb).
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Rezolvare
Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:
Notă Pentru ca această remediere să aibă efect, trebuie să activați remedieri rapide pentru interogare Optimizatorul folosind Trace Flag (TF) 4199 sau o bază de date corespunzătoare de configurare sau de sugestie pentru interogare.
Despre actualizările cumulative pentru SQL Server:
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
Soluție de evitare
Această problemă poate fi rezolvată adăugând următoarea sugestie de interogare:
Utilizați SUGESTIE (' FORCE_LEGACY_CARDINALITY_ESTIMATION ')
Referințe
Aflați despre terminologiape care o utilizează Microsoft pentru a descrie actualizările de software.