KB3189813 – ažuriranje uvodi argument podsjetnika za upit HINT u SQL Server 2016

Primjenjuje se na
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

Sažetak

Ovo ažuriranje uvodi novi argument podsjetnika za upit, USE HINT, koji vam omogućuje pokretanje optimizatora upita bez dodatnih vjerodajnica ili bez uloge sysadmin poslužitelja. Sintaksa ovog novog podsjetnika za upit slična je sljedećoj:

<query_hint > ::=
{
USE HINT(N'key' [ [, ]...n ])
}

      

Ovo ažuriranje uvodi i sljedeće mogućnosti podsjetnika koje se mogu koristiti s argumentom USE HINT.

Mogućnost Ekvivalentna oznaka praćenja Opis Odnosi se na
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS TF 9476 Uzrokuje da SQL Server generira plan upita pomoću pretpostavke jednostavnog zadržavanja umjesto zadane pretpostavke osnovnog zadržavanja za spojeve, prema modelu procjene kardinalnosti optimizatora upita za SQL Server 2014 (12.x) ili noviji.
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES TF 4137 Uzrokuje da SQL Server generira plan pomoću minimalne selektivnosti prilikom procjene predikata AND za filtre radi uzimanja u obzir korelacije. Taj je naziv podsjetnika paralelan sa zastavicom praćenja 4137 kada se koristi s modelom procjene kardinalnosti sustava SQL Server 2012 (11.x) i starijim verzijama, a ima sličan učinak kada se prati zastavica 9471 koristi s modelom procjene kardinalnosti sustava SQL Server 2014 (12.x) ili novijim.
DISABLE_BATCH_MODE_ADAPTIVE_JOINS Onemogućuje skupni način rada s adaptivnim pridruživanjima. počevši od SQL Server 2017
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK Onemogućuje skupni način rada s povratnim informacijama o dodjeljivanju memorije. počevši od SQL Server 2017
DISABLE_DEFERRED_COMPILATION_TV Onemogućuje kompilaciju varijable tablice s odgodom. počevši od SQL Server 2019
DISABLE_INTERLEAVED_EXECUTION_TVF Onemogućuje izvršavanje s preplitanjem za funkcije s više naredbi koje sadrže vrijednost tablice. počevši od SQL Server 2017
DISABLE_OPTIMIZED_NESTED_LOOP TF 2340 Upućuje procesor upita da prilikom stvaranja plana upita ne koristi operaciju sortiranja (skupno sortiranje) za optimizirana ugniježđena spojeve petlje.
DISABLE_OPTIMIZER_ROWGOAL TF 4138 Zbog toga SQL Server generira plan koji ne koristi izmjene ciljeva redaka s upitima koji sadrže sljedeće ključne riječi:

  • TOP
  • OPTION (FAST N)
  • IN
  • EXISTS
DISABLE_PARAMETER_SNIFFING TF 4136 Upućuje optimizator upita da prilikom sastavljanja upita s jednim ili više parametara koristi prosječnu distribuciju podataka. Ova uputa čini plan upita neovisnim o vrijednosti parametra koji je prvi put korišten prilikom sastavljanja upita. Pomoću ovog savjeta nadjačajte postavku konfiguracije opsega baze podataka PARAMETER_SNIFFING=ISKLJUČENO.
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK Onemogućuje način rada retka povratne informacije o dodjeljivanju memorije. počevši od SQL Server 2019
DISABLE_TSQL_SCALAR_UDF_INLINING Onemogućuje skalarno umetanje UDF-a. počevši od SQL Server 2019
DISALLOW_BATCH_MODE Onemogućuje izvršavanje skupnog načina rada. počevši od SQL Server 2019
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS TF 4139 Omogućuje automatski generirane brze statistike (izmjena histograma) za svaki vodeći stupac indeksa za koji je potrebna procjena kardinalnosti. Histogram koji se koristi za procjenu kardinalnosti prilagodit će se u vrijeme sastavljanja upita da bi se uzela u obzir stvarna, maksimalna ili minimalna vrijednost stupca.
ENABLE_QUERY_OPTIMIZER_HOTFIXES TF 4199 Omogućuje hitne popravke optimizatora upita (promjene objavljene u kumulativnim ažuriranja i servisnim paketima za SQL Server). Pomoću ovog savjeta nadjačajte postavku konfiguracije opsega baze podataka QUERY_OPTIMIZER_HOTFIXES=UKLJUČENO.
FORCE_DEFAULT_CARDINALITY_ESTIMATION TF 9481 Prisiljava optimizator upita da koristi model procjene kardinalnosti koji odgovara trenutnoj razini kompatibilnosti baze podataka. Pomoću ovog savjeta nadjačajte postavku konfiguracije opsega baze podataka LEGACY_CARDINALITY_ESTIMATION=UKLJUČENO.
FORCE_LEGACY_CARDINALITY_ESTIMATION TF 9481 Prisiljava optimizator upita da koristi model procjene kardinalnosti sustava SQL Server 2012 (11.x) i starijih verzija. Pomoću ovog savjeta nadjačajte postavku konfiguracije opsega baze podataka LEGACY_CARDINALITY_ESTIMATION=UKLJUČENO.
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n Forsira ponašanje optimizatora upita na razini upita. To se ponaša kao da je upit kompiliran s novom razinom kompatibilnosti baze podataka, pri čemu je n podržana razina kompatibilnosti baze podataka. Popis trenutačno podržanih vrijednosti za n potražite u sys.dm_exec_valid_use_hints. počevši od SQL Server 2017 (14.x) CU10

Dodatne informacije potražite u odjeljku Savjeti (Transact-SQL) – upit.

Dodatne informacije

Ovo je ažuriranje obuhvaćeno servisnim paketom Service Pack 1 za SQL Server 2016.

O međuverzijama sustava SQL Server 2016

Svaka nova međuverzija za SQL Server 2016 sadrži sve hitne popravke i sigurnosne popravke koji su obuhvaćeni prethodnom međuverzijom. Preporučujemo da instalirate najnoviju međuverziju za SQL Server 2016.

Scenariji u kojima se ponašanje optimizatora upita (QO) sustava SQL Server mora nagovijestiti prilično su uobičajeni i obično se rješavaju pomoću nekoliko (dokumentiranih i nedokumentiranih) oznaka praćenja. No kada se zastavice praćenja postavljaju globalno, one mogu negativno utjecati na druga radna opterećenja. Osim toga, njihovo omogućivanje po sesiji nije praktično s postojećim aplikacijama, a za njihovo omogućivanje po upitu pomoću funkcije OPTION QUERYTRACEON potrebno je članstvo u ulozi fiksnog poslužitelja sysadmin. (Iako to možete zaobići pomoću vodiča za planiranje ili spremljene procedure, dodatne su vjerodajnice ipak potrebne.)

Zastavice praćenja koriste se za privremeno postavljanje određenih karakteristika poslužitelja ili za isključivanje određenog ponašanja. Možda će njima biti teško upravljati i razumjeti ih.

Dodatne informacije o zastavicama praćenja potražite u temi Praćenje zastavica (Transact-SQL) na web-mjestu mreže MSDN (Microsoft Developer Network).

Reference

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