Optimizator reda cilj informacije u plan izvršenja upita dodao 2014 SQL Server, 2016 godine i 2017

Primenjuje se na: SQL Server 2016 StandardSQL Server 2016 DeveloperSQL Server 2016 Enterprise

Rezime


Dodati novi EstimateRowsWithoutRowGoal upit izvršenja plana atribut SQL Server 2017 Kumulativna ispravka 3 (CU3) i Microsoft SQL Server 2016 Service Pack 2 (SP2).

Kada je upit optimizator procenjuje trošak plan izvršenja upita, to obično pretpostavlja da stiče sve redove iz svih izvora moraju da budu obrađeni. Međutim, neki upiti uzrokuju optimizator upita za pretraživanje plan koji će vratiti manji broj redova brže. Do ovoga može doći ako upit koristi odredbu TOP , brzo number_rows podsetnik za upit, odredbu IN ili EXISTS , ili Postavljanje BROJANJEREDOVA {broj | @number_var} izjavu. U ovom slučaju, optimizator koristi red gol kada on procenjuje plan upita. Ako red cilj plana je zatvoren, procenjeni broj redova u plan izvršenja upita je smanjena. Ovo je zato što je plan pretpostavlja da manji broj redova koji će imati za obradu da biste dostigli cilj reda.

Napomena Procena koja vrši se pomoću reda cilj je približna. Ako stvarni podaci distribucije je neravnomerno, možda manje nego stvarni broj redova koje moraju da budu obrađeni. Stoga, to mogli da napravimo plan za neefikasna upita. Kao zaobilazno rješenje za ovaj problem, možete koristiti opciju upita Koristite znak („DISABLE_OPTIMIZER_ROWGOAL”) ili trag 4138 zastavu.

Više informacija potražite u odeljku Update uvodi podsetnik za korišćenje upita podsetnik za argument u SQL Server 2016. Međutim, to može biti izazov za identifikaciju u kompleksu upite da li se primenjuje red gol i koliko to utiče na izbor plan.

Pomoću atribut EstimateRowsWithoutRowGoal možete uporediti rezultate onima od atribut EstimateRows da vidim koliko reda cilj utiče na upit optimizator procene.

Napomena Ako je cilj reda se ne primenjuje na operator plan za određeni upit, ovaj atribut nije uključena.

Više informacija


Ova ispravka je uključena u sledeću kumulativnu ispravku za SQL Server:

       Kumulativna ispravka 3 za SQL Server 2017

Informacije o servisnom paketu usluga za SQL Server

Ova ispravka je uveden u sledeće servisne pakete za SQL Server:

       Servisni paket 2 za SQL Server 2016

       Servisni paket 3 za SQL Server 2014 godine

Reference


Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.