KB4522127 - REMEDIERE: Performanță slabă a interogărilor din cauza estimării cardinalității scăzute în SQL Server 2016, atunci când utilizați CE implicit, iar coloana este acoperită atât de statisticile cu o coloană, cât și de cele cu mai multe coloane

Se aplică la
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)

Simptome

Să presupunem că rulați o interogare care implică o asociere sau o agregare pe o coloană care este acoperită atât de statisticile cu o singură coloană, cât și de statisticile cu mai multe coloane (în care această coloană nu este coloana inițială). Dacă utilizați un estimator de cardinalitate (CE) implicit în SQL Server 2016, este posibil ca acesta să subestimeze numărul de rânduri distincte. Acest lucru duce la un plan de executare a interogărilor suboptim (de exemplu: o estimare scăzută poate determina o acordare de memorie insuficientă pentru un operator hash, ceea ce determină vărsarea interogării către tempdb).

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate î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 remedierile rapide ale optimizatorului de interogări utilizând semnalizarea de urmărire (TF) 4199 sau configurația corespunzătoare domeniului bazei de date sau opțiunea sugestie de interogare.

      

Despre actualizările cumulative pentru SQL Server:

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Soluție

Această problemă poate fi remediată adăugând următorul indiciu de interogare:

UTILIZAȚI HINT('FORCE_LEGACY_CARDINALITY_ESTIMATION')

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.