KB4023419 – POPRAVKA: Upit sa funkcijom UNION ALL i ciljem reda može da se sporije izvršava u SQL Server 2014 ili novijim verzijama kada se uporedi sa SQL Server 2008 R2

Primenjuje se na
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

Simptomi

Kada postavite upit nad prikazom u sistemu Microsoft SQL Server 2014 ili 2016, možda će biti potrebno mnogo više vremena za njegovo izvršavanje ako ga uporedite sa izvršavanjem u sistemu SQL Server 2008 R2.

Kada izvršite upit koji koristi UNION ALL i cilj reda (kao što je odredba TOP N, predikat FAST N ili EXISTS), možda ćete primetiti da upit radi sporije u sistemu SQL Server 2014 ili novijim verzijama ako ga uporedite sa SQL Server 2008 R2.

Uzrok

U sistemu SQL Server 2008 R2 optimizator upita menja redosled različitih delova u okviru UNION ALL ako je prisutan cilj reda, tako da najjeftiniji deo ide prvi. To omogućava upitu da završi izvršavanje ranije ako jeftiniji delovi proizvode potreban broj redova, bez nastavka izvršavanja skupljih delova. Takav preraspoređivanje se ne dešava u novijim verzijama sistema SQL Server.

Rešenje

Ovaj problem je rešen u sledećoj kumulativnoj ispravci za SQL Server:

Kumulativna ispravka 7 za SQL Server 2016 RTM

Kumulativna ispravka 4 za SQL Server 2016 SP1

Kumulativna ispravka 6 za SQL Server 2014 SP2

Napomena Optimizator upita mora biti omogućen za ovaj problem.

Više informacija o optimizatoru upita i zastavicama praćenja potražite na sledećim vezama:

SQL Server optimizator upita hitna ispravka TF 4199 model servisiranja

DBCC konzolne komande i zastavice praćenja

Osnovni podaci o kumulativnim ispravkama za SQL Server:

Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:

Najnovija kumulativna ispravka za SQL Server 2016

Najnovija kumulativna ispravka za SQL Server 2014

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.

Reference

Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.