Sažetak
Ovo ažuriranje uvodi novi argument hint upita, pomoću savjeta, koji omogućuje pogon alata za optimizaciju upita bez povišenih vjerodajnica ili ako niste član uloge poslužitelja za Sysadmin. Sintaksa ovog novog nagovještaja upita nalikuje sljedećem:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Ovo ažuriranje uvodi i sljedeće mogućnosti savjeta koje se mogu koristiti u argumentu koristi hint .
Mogućnost |
Oznaka ekvivalentnih tragova |
Opis |
Odnosi se na |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Uzrokuje da SQL Server generira tarifu za upit pomoću jednostavne pretpostavke suzbijanja blokiranja, a ne zadane pretpostavke osnovnog zadržavanja za spojeve, u odjeljku alat za optimizaciju upita Model za procjenu kardinalnosti sustava SQL Server 2014 (12. x) ili noviji. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Uzrokuje da SQL Server generira tarifu pomoću minimalne selektivnosti kada procjenjuje i predifikuje za filtre na račun za korelaciju. Ovaj naziv savjeta paralelno je s Trace Flag 4137 kada se koristi sa modelom kardinala za procjenu programa SQL server 2012 (11. x) i starijim verzijama te ima sličan učinak kada se u programu trace Flag 9471 koristi model za procjenu kardinalnosti sustava SQL Server 2014 (12. x) ili noviji. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Onemogućuje spajanje skupa u načinu rada za prilagodljivu. |
Počevši od sustava SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Onemogućuje povratne informacije za skupni način rada s memorijom. |
Počevši od sustava SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Onemogućuje kompilaciju promjene varijable tablice. |
Počevši od sustava SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Onemogućuje upravljanje interleavom za funkcije s više izjava u tablici vrijednosti. |
Počevši od sustava SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Upućuje procesor upita da ne koristi postupak sortiranja (sortiranje serije) za optimizirane veze s ugniježđenom petlja prilikom stvaranja tarife za upite. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Uzrokuje da SQL Server generira plan koji ne koristi promjene cilja u retku s upitima koji sadrže te ključne riječi:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Upućuje optimizaciju upita da koristi prosječnu raspodjelu podataka dok kompiliranje upita s jednim ili više parametara. Ova poduka stvara plan upita neovisan o vrijednosti parametra koja se prvi put koristila prilikom kompiliranje upita. Pomoću ovog nagoveštaja možete nadjačati postavku konfiguracije opsega baze podataka PARAMETER_SNIFFING = isključeno. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Onemogućuje povratne informacije o načinu rada retka. |
Počevši od sustava SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Onemogućava skalarni UDF inlining. |
Počevši od sustava SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Onemogućuje izvršavanje skupnog načina rada. |
Počevši od sustava SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Omogućuje automatski generiranu brzu statistiku (amandman na histogram) za bilo koji vodeći stupac indeksa za koji je potrebna procjena kardinalnosti. Histogram koji se koristi za procjenu kardinala bit će prilagođen u upitu kompiliranje vremena na račun za stvarnu maksimalnu ili minimalnu vrijednost ovog stupca. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Omogućuje hitne popravke za optimizaciju upita (promjene objavljene u zbirnim ažuriranjima sustava SQL Server i servisni paketi). Koristite ovaj hint da biste nadjačali Postavke konfiguracije na opsegu baze podataka QUERY_OPTIMIZER_HOTFIXES = uključeno. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Prisiljava alat za optimizaciju upita za korištenje Model procjene kardinalnosti koji odgovara tekućoj razini kompatibilnosti baze podataka. Koristite ovaj hint da biste nadjačali Postavke konfiguracije na opsegu baze podataka LEGACY_CARDINALITY_ESTIMATION = uključeno. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Prisiljava alat za optimizaciju upita za korištenje Model za procjenu kardinalnosti sustava SQL Server 2012 (11. x) i starijih verzija. Pomoću ovog nagoveštaja možete nadjačati postavku konfiguracije opsega baze podataka LEGACY_CARDINALITY_ESTIMATION = uključeno. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Prisiljava ponašanje Optimizatora upita na razini upita. Ovo se ponašanje događa kao da je upit kompiliran s razinom kompatibilnosti baze podataka n, gdje je n podržana razina kompatibilnosti baze podataka. Odnosi se nasys.dm_exec_valid_use_hints za popis trenutno podržanih vrijednosti za n. |
Počevši od sustava SQL Server 2017 (14. x) CU10 |
Dodatne informacije potražite u članku Savjeti (Transact-SQL) – Query.
Dodatne informacije
Ovo je ažuriranje obuhvaćeno servisnim paketom Service Pack 1 za SQL Server 2016.
Svaka nova međuverzija za SQL Server 2016 sadrži sve hitne popravke i sve sigurnosne popravke koji su bili obuhvaćeni prethodnom sastavom. Preporučujemo da instalirate najnoviju izgradnju za SQL Server 2016.
Scenariji u kojima se moraju ukazuju na ponašanje alata za optimizaciju upita sustava SQL Server (QO) vrlo su česti, a tradicionalno se adresiraju pomoću nekoliko (dokumentiranih i nedokumentiranih) zastavica praćenja. No kada su oznake praćenja globalno postavljene, možda imaju negativan učinak na druga radna opterećenja. Osim toga, omogućavajući im da na sjednici nije praktična za postojeće aplikacije, pa im omogućuje da se na upit s mogućnošću QUERYTRACEON zahteva članstvo u ulozi servisa sysadmin Fixed Server. (Iako to ponašanje možete zaobići pomoću vodiča za planiranje ili spremljene procedure, još uvijek su potrebne visoke vjerodajnice.) Zastavice praćenja koriste se za privremeno postavljanje specifičnih značajki poslužitelja ili za uključivanje određenog ponašanja, možda će ih biti teško upravljati i razumjeti. Informacije o zastavama praćenja potražite u temi praćenje zastavica (Transact-SQL) na web-mjestu Microsoft Developer Network (MSDN).
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.