Simptome
Logica de estimare a cardinalității cunoscută sub numele de estimarea cardinalității (CE) a fost reproiectată în SQL Server 2014 (niveluri de compatibilitate 120) și SQL Server 2016 (niveluri de compatibilitate 130) pentru a îmbunătăți calitatea planurilor de interogare. Cu toate acestea, atunci când compilați o interogare complexă care conține multe asocieri cu un operator DISTINCT sau de grup, compilarea poate dura mai mult decât este așteptat.
Rezolvare
Această actualizare care remediază această problemă este inclusă în pachetul Service Pack 1 pentru SQL Server 2016.Notă După ce instalați această actualizare, trebuie să setați Trace Flag 4199 pentru a activa remedierea. Pentru a seta semnalizarea de urmărire 4199, consultați subiectul Trace Flags (Transact-SQL) la MSDN.
Fiecare compilare nouă pentru SQL Server 2016 conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în compilarea anterioară. Vă recomandăm să instalați cea mai recentă versiune pentru SQL Server 2016.
Soluție de evitare
Pentru a evita această problemă, utilizați una dintre metodele următoare:
-
Utilizați Trace Flag 9481 pentru a seta modelul de estimare a interogării de optimizare cardinality la SQL Server 2012 sau o versiune anterioară.
-
Modificați nivelul de compatibilitate al bazei de date în SQL Server 2012 (110) sau o versiune anterioară.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.