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.