Suvestinė
Šiame naujinime pateikiamas naujas užklausos užuominos argumentas, naudoti užuominą, kuri leidžia vairuoti užklausos optimizatoriaus nepadidintus kredencialus arba nesant "sysadmin" serverio vaidmens nario. Šios naujos užklausos užuominos sintaksė panaši į šiuos dalykus:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Šiame naujinime taip pat pateikiamos toliau nurodytos užuominos parinktys, kurias galima naudoti su argumentu naudoti užuominą .
Parinktį |
Lygiavertė sekimo žymė |
Aprašymas/kontrolė |
Taikoma |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Sukelia SQL serverį generuoti užklausos planą, naudojant paprastą izoliavimo prielaidą, o ne numatytąją pagrindinio integraliosios sujungimo prielaidą, esančią užklausos optimizavimo priemone " SQL Server" 2014 (12. x) arba naujesnės versijos svarba vertinimo modelis. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Sukelia "SQL Server", kad būtų sukurtas planas, naudojant mažiausią selektyvumą įvertinant ir taikant filtrus, kad būtų atsižvelgta į koreliaciją. Šio užuominos pavadinimas yra lygiagretus Sekimo vėliavėlė " 4137", kai naudojama su "SQL Server" 2012 (11. x) ir ankstesnėmis versijomis, ir turi panašų poveikį, kai sekimo žymė 9471 naudojama su "sql Server" 2014 vertinimo modeliu (12. x) arba naujesnė. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Išjungia paketinio režimo adaptyvųjį sujungimą. |
paleidimas "SQL Server 2017" |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Išjungia paketinio režimo atmintį teikti atsiliepimus. |
paleidimas "SQL Server 2017" |
|
DISABLE_DEFERRED_COMPILATION_TV |
Išjungia lentelės kintamojo atidėtąjį kompiliavimą. |
paleidimas "SQL Server 2019" |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Išjungia failo formatas vykdymą, kai yra kelios sakinio lentelės reikšmės. |
paleidimas "SQL Server 2017" |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Paveda užklausos dorokliui nenaudoti rūšiavimo operacijos (paketinis rūšiavimas) optimizuotos įdėtosios linijos sujungimų generuojant užklausos planą. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Sukelia "SQL Server" kurti planą, kuris nenaudoja eilutės tikslo keitimų su užklausomis, kuriose yra šie raktiniai žodžiai:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Nurodo užklausos optimizatoriaus naudoti vidutinį duomenų paskirstymą kompiliuojant užklausą su vienu ar keliais parametrais. Naudojant šią instrukciją užklausos planas priklauso nuo parametro reikšmės, kuri buvo pirmą kartą naudota, kai užklausa buvo parengta. Naudokite šią užuominą Norėdami perrašyti duomenų bazės aprėpties konfigūravimo parametrą PARAMETER_SNIFFING = off. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Išjungia eilutės režimo atmintį teikti atsiliepimus. |
paleidimas "SQL Server 2019" |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Išjungia Skaliarinę UDF inlining. |
paleidimas "SQL Server 2019" |
|
DISALLOW_BATCH_MODE |
Išjungia paketinio režimo vykdymą. |
paleidimas "SQL Server 2019" |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Įgalina automatiškai sugeneruotą sparčiąją statistinę informaciją (histogramos pakeitimą) bet kuriam pagrindiniam indekso stulpeliui, kurio svarba yra reikalinga. Histograma, naudojama norint įvertinti "svarba" bus koreguojama užklausos kompiliavimo metu, kad būtų atsižvelgta į faktinę didžiausią arba mažiausią šio stulpelio reikšmę. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Įgalina užklausos optimizavimo karštąsias pataisas ("SQL Server" kaupiamajame naujinime ir pakeitimų paketuose išleistų pakeitimų). Naudokite šią užuominą, kad nepaisytumėte Duomenų bazės aprėpties konfigūracijos parametras QUERY_OPTIMIZER_HOTFIXES = on. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Priverstinai naudoja užklausos optimizatorių Svarba vertinimo modelis, atitinkantis dabartinį duomenų bazės suderinamumo lygį. Naudokite šią užuominą, kad nepaisytumėte Duomenų bazės aprėpties konfigūracijos parametras LEGACY_CARDINALITY_ESTIMATION = on. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Priverstinai naudoja užklausos optimizatorių " SQL Server" 2012 (11. x) ir ankstesnių versijų svarba vertinimo modelis. Naudokite šią užuominą Norėdami perrašyti duomenų bazės aprėpties konfigūravimo parametrą LEGACY_CARDINALITY_ESTIMATION = on. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Nurodo užklausos optimizatoriaus veikimą užklausos lygmenyje. Taip nutinka, jei užklausa buvo parengta su duomenų bazės suderinamumo lygiu n, kur n yra palaikomas duomenų bazės suderinamumo lygis. Nurodytišiuo metu palaikomų n reikšmės reikšmių sąrašas nsys.dm_exec_valid_use_hints. |
paleidimas SQL serverio 2017 (14. x) CU10 |
Daugiau informacijos ieškokite nurodymai (TRANSACT-SQL) – užklausa.
Daugiau informacijos
Šis naujinimas yra įtrauktas į 1 pakeitimų paketą , skirtą "SQL Server 2016".
Kiekvienoje naujoje "SQL Server 2016" versijoje yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnės komponavimo versijos. Rekomenduojame įdiegti naujausią "SQL Server 2016" komponavimo versiją.
Scenarijai, kai SQL serverio užklausos optimizatoriaus (QO) elgesys turi būti užsimenamas, yra gana įprastas, ir tradiciškai jie sprendžiami naudojant kelis (dokumentuotas ir nedokumentuotas) sekimo žymes. Tačiau kai sekimo vėliavėlės nustatomos visuotinai, jos gali turėti neigiamos įtakos kitiems darbo krūviams. Be to, įgalinant jų seanso metu nepraktiška naudoti esamas taikomąsias programas ir įjungus užklausos su Option QUERYTRACEON reikia narystės "sysadmin" ilgalaikio serverio vaidmenyje. (Nors galite išspręsti šią problemą naudodami plano vadovą arba saugomą procedūrą, vis tiek reikia didesnių kredencialų.) Sekimo vėliavėlės naudojamos norint laikinai nustatyti konkrečias serverio ypatybes arba išjungti konkretų veikimą, jas gali būti sunku valdyti ir suprasti. Informacijos apie sekimo žymes ieškokite "Microsoft Developer Network (MSDN)" žiniatinklio svetainės temoje sekimo vėliavėlės (Transact-SQL) .
Nuorodos
Sužinokite apie terminologiją , kurią "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.