Simptomi
Kada varijablu tablice ispunite s mnogo redaka, a zatim joj se pridružite s drugim tablicama, alat za optimizaciju upita može odabrati neučinkovit plan upita, što može dovesti do spore performanse upita.
Rješenje
Kada primijenite taj hitni popravak, uključite zastavicu 2453 da biste promijenili varijablu tablice da biste aktivirali rekompiliranje kada je dovoljno promjena broja redaka. To može dopustiti Optimizatoru upita da izabere učinkovitiji plan. Problem je prvi put riješen u sljedećim kumulativnim ažuriranjem ili/i servisnim paketima za SQL Server.
Kumulativno ažuriranje 3 za SQL Server 2014 /en-us/help/2984923
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Servisni paketi kumulativni su. Svaki novi servisni paket sadrži sve popravke koji se nalaze u prethodnim servisnim paketima, zajedno sa svim novim ispravcima. Preporučujemo da primijenite najnoviji servisni paket i najnovije Kumulativno ažuriranje za taj servisni paket. Prije nego što instalirate najnoviji servisni paket, ne morate instalirati prethodni servisni paket. U sljedećem članku koristite tablicu 1 da biste pronašli dodatne informacije o najnovijem servisnom paketu i najnovijem kumulativnom ažuriranju:
Određivanje razine verzije, izdanja i ažuriranja sustava SQL Server i njenih komponenti
Dodatne informacije
Kada koristite varijablu tablice u seriji ili proceduri, upit se sastavlja i optimizuje za početno prazno stanje varijable tablice. Ako je varijablu tablice popunjena više redaka prilikom izvođenja, unaprijed kompilirani plan upita možda više neće biti optimalan. Upit se, primjerice, može priključiti varijablu tablice s ugniježđenom petlja jer je obično učinkovitija za manji broj redaka. Ovaj plan upita može biti neučinkovit ako varijablu tablice sadrži milijune redaka. Spajanje mljeveno meso može biti bolji izbor u okviru takvog uvjeta. Da biste dobili novi tarifu za upit, potrebno ga je ponovno sastaviti. No za razliku od drugih korisnika ili privremenih tablica, promjena broja redaka u varijabli tablice ne pokreće upit rekompiliranje. Obično to možete zaobići uz mogućnost (REKOMPILIRANJE), koja ima vlastiti indirektne troškove. Zastavica praćenja 2453 omogućuje rekompiliranje upita bez mogućnosti (REKOMPILIRANJE). Ova se zastava praćenja razlikuje od mogućnosti (REKOMPILIRANJA) u dva glavna aspekta. (1) koristi isti prag broja redaka kao i druge tablice. Upit se ne mora sastaviti za svako izvršavanje za razliku od mogućnosti (REKOMPILIRANJE). To će aktivirati rekompiliranje samo kada broj redaka promjena prelazi unaprijed definirani prag. (2) mogućnost (REKOMPILIRANJE) prisiljava upit da pogleda parametre i optimizira upit za njih. Ova zastavica za praćenje ne stvara parametre peeking.Obavijest o ovoj zastavici praćenja mora biti uključeno prilikom izvođenja. Ne možete koristiti ovu zastavicu praćenja uz QUERYTRACEON. Ta se zastavica praćenja mora koristiti s oprezom jer može povećati broj resastavnih upita koji mogu koštati više od uštede od boljih optimizacije upita.
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".