Simptomi
Razmotrite sledeći scenario:
-
Imate upit koji koristi predikat koji nije jednakost na jedinstvenoj GUID koloni u sistemu SQL Server 2014 ili 2016.
-
Statistika se ažurira pomoću podrazumevanog uzorka. Takođe, novi redovi se umeću u tabelu nakon poslednjeg ažuriranja statistike.
-
SQL Server koristi Estimator nove kardinalnosti u kojem je režim kompatibilnosti baze podataka postavljen na 120.
-
GUID vrednosti se ne ravnomerno distribuiraju po tabeli.
U ovom scenariju kada pokrenete upit, može doći do loših performansi zbog nepravilno procenjenog broja redova za predikat u planu upita.
Rešenje
Ovaj problem je prvi put otklonjen u sledećoj kumulativnoj ispravki za SQL Server:
Kumulativna ispravka 6 za SQL Server 2014 servisni paket 1 Kumulativna ispravka 1 za SQL Server 2016Kada instalirate ovaj kumulativni paket ispravki, morate da omogućite zastavicu za praćenje 4199. Da biste to uradili, možete da dodate -T4199 parametar za pokretanje. Takođe, možete da koristite dbcc traceon (4199) izjavu za određenu sesiju.
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2014Najnovija kumulativna ispravka za SQL Server 2016
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.