KB4023419 - REMEDIERE: Interogarea cu UNION ALL și un obiectiv rând poate rula mai lent în SQL Server 2014 sau versiuni mai recente comparativ cu SQL Server 2008 R2

Se aplică la
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) 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) SQL Server 2016 Service Pack 1

Simptome

Atunci când interogați o vizualizare în Microsoft SQL Server 2014 sau 2016, finalizarea acesteia poate dura mult mai mult timp, dacă o comparați cu executarea în SQL Server 2008 R2.

Când executați o interogare care utilizează UNION ALL și un obiectiv rând (cum ar fi clauza TOP N, FAST N sau predicatul EXISTS), este posibil să observați că interogarea rulează mai lent în SQL Server 2014 sau în versiunile mai recente, dacă o comparați cu SQL Server 2008 R2.

Cauză

În SQL Server 2008 R2, optimizarea interogărilor modifică ordinea diferitelor părți sub UNION ALL dacă este prezent un obiectiv de rând, astfel încât piesa cea mai ieftină să fie prima. Acest lucru permite ca interogarea să termine executarea mai devreme dacă piesele mai ieftine produc numărul necesar de rânduri, fără a continua să execute piese mai scumpe. O astfel de reordonare nu apare în versiunile mai recente de SQL Server.

Rezolvare

Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:

Actualizarea cumulativă 7 pentru SQL Server 2016 RTM

Actualizarea cumulativă 4 pentru SQL Server 2016 SP1

Actualizarea cumulativă 6 pentru SQL Server 2014 SP2

Notă Optimizatorul de interogare trebuie să fie activat pentru această problemă.

Pentru mai multe informații despre optimizarea interogărilor și semnalizatoarele de urmărire, consultați următoarele linkuri:

Remediere rapidă SQL Server Optimizer interogare TF 4199 model de servicii

Comenzile consolei DBCC și semnalizările de urmărire

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:

Cea mai recentă actualizare cumulativă pentru SQL Server 2016

Cea mai recentă actualizare cumulativă pentru SQL Server 2014

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Referințe

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