Kokkuvõte
Selles värskenduses tutvustatakse uut päringu vihjet, Kasutage vihjet, mis võimaldab teil juhtida päringu optimeerijat, kui teil pole kõrgendatud mandaati või sysadmin rolli. Selle uue päringu süntaksi süntaks sarnaneb järgmisega:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Selles värskenduses tutvustatakse ka järgmisi näpunäiteid, mida saab kasutada argumendiga vihje .
Võimalus |
Samaväärne jälituslipp |
Kirjeldus |
Rakendub |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Põhjustab SQL serveri, et luua päringu plaan, kasutades selleks lihtsat isoleerimise oletust, mitte vaikimisi baasi isoleerituse eeldust liitude jaoks, päringu optimeerija all SQL serveri 2014 (12. x) või uuemat versiooni. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Põhjustab SQL serveri loomise, kasutades minimaalset selektiivsust, kui hinnatakse ja valikupredikaatide filtrite jaoks korrelatsiooni arvestamiseks. Selle vihje nimi on paralleelne jälituslipp 4137, kui seda kasutatakse SQL server 2012 (11. x) ja varasemates versioonides, ning sellel on sarnane efekt, kui jälituslipp 9471 kasutatakse koos SQL Server 2014 (12. x) või uuemate ärijuhtimise mudeliga. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Keelab kogumitena kohandatavad ühendused. |
alates SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Keelab kogumitena Memory Grant tagasiside. |
alates SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Keelab tabeli muutuja edasilükatud kompileerimise. |
alates SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Keelab mitme lausega tabeli-väärtustatud funktsioonide interleavete käivitamise. |
alates SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Teeb päringu volitatud töötlejale ülesandeks mitte kasutada sortimise toimingut (partii sortimine), et luua päringu plaani loomisel optimeeritud pesastatud silmus. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Põhjustab SQL serveri luua plaani, mis ei kasuta rea eesmärgi muudatusi nende märksõnadega päringutes.
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Juhendab päringu optimeerijat kasutama keskmise andmete jaotust ühe või mitme parameetriga päringu koostamisel. See juhend muudab päringu plaani sõltumatuks parameetri väärtusest, mida kasutati päringu koostamisel. Selle vihje abil saate alistada andmebaasi ulatuse konfigureerimise sätte PARAMETER_SNIFFING = väljas. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Keelab rea režiimi mälumahu andmise tagasiside. |
alates SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Keelab skalaarväärtus UDF-i liigenduse. |
alates SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Keelab kogumitena käivitamise. |
alates SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Võimaldab automaatselt genereeritud kiire statistika (histogrammi muutmine) kõigi juhtivate indeksi veergude jaoks, mille jaoks on vaja hinnata lisaväärtust. Selle veeru tegeliku maksimumi või vähima väärtuse arvestamiseks korrigeeritakse skaala hindamisel kasutatavat histogrammi. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Võimaldab Query Optimizeri käigultparandused (SQL serveri kumulatiivsete värskenduste ja hoolduspakettide muudatused on välja antud). Kasutage seda vihjet alistamiseks Andmebaasi ulatuse häälestamise säte QUERY_OPTIMIZER_HOTFIXES = sees. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Sunnib päringu optimeerijat kasutama Ühilduvuse hindamise mudel, mis vastab praegusele andmebaasi ühilduvuse tasemele. Kasutage seda vihjet alistamiseks Andmebaasi ulatuse häälestamise säte LEGACY_CARDINALITY_ESTIMATION = sees. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Sunnib päringu optimeerijat kasutama SQL serveri 2012 (11. x) ja varasemate versioonide kardinalide hindamise mudel. Selle vihje abil saate alistada andmebaasi ulatuse konfigureerimise sätte LEGACY_CARDINALITY_ESTIMATION = sees. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Jõustab päringu optimeerija käitumise päringu tasemel. Selline käitumine toimub siis, kui päring on kompileeritud andmebaasi ühilduvuse tasemega. n, kus n on toetatud andmebaasi ühilduvuse tase. Vaadakesys.dm_exec_valid_use_hints n-i praegu toetatud väärtuste loendi jaoks n. |
alates SQL Server 2017 (14. x) CU10 |
Lisateavet leiate teemast vihjed (Transact-SQL)-päring.
Lisateave
See värskendus sisaldab SQL Server 2016 hoolduspaketti 1 .
Iga uus järk SQL Server 2016 sisaldab kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmisele järgule. Soovitame installida SQL Server 2016 uusimad järk-järgud.
Stsenaariumid, kus SQL Server Query Optimizer (QO) käitumine peab olema vihjatud, on üsna levinud ning traditsiooniliselt käsitletakse neid mitme (dokumenteeritud ja dokumentideta) jälitamise lippude abil. Kui aga trace Flags on seatud globaalselt, võib neil olla kahjulik mõju muudele töökoormustele. Lisaks ei ole nende lubamine ühe seansi jooksul otstarbekas olemasolevate rakendustega ning võimaldab nende päringute korral QUERYTRACEON , mille puhul on vaja sysadmin-i rolli. (Kuigi selle probleemi lahendamiseks saate kasutada plaani juhendit või salvestatud protseduuri, on vaja kõrgendatud mandaati.) Trace Flags kasutatakse kindlate serveri omaduste ajutiseks määramiseks või konkreetse käitumise väljalülitamiseks, neid võib olla raske hallata ja mõista. Lisateavet jälituslipp kohta leiate teemast Microsoft Developer Networki (MSDN) veebisaidil trace Flags (Transact-SQL) .
Viited
Siit leiate teavet selle kohta, mida Microsoft kasutab tarkvaravärskenduste kirjeldamiseks.