KB3189813 – Päivitys tuo käyttöön USE-vihjekyselyvihjeargumentin SQL Server 2016:ssa

Käytetään kohteeseen
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)

Yhteenveto

Tässä päivityksessä on uusi kyselyvihjeargumentti USE HINT, jonka avulla voit käyttää kyselyn optimointitoimintoa ilman laajennettuja tunnistetietoja tai olematta sysadmin-palvelinroolin jäsen. Tämän uuden kyselyvihjeen syntaksi on seuraavankaltainen:

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

      

Päivityksessä on myös seuraavat vihjeasetukset, joita voidaan käyttää KÄYTÄ VIHJE -argumentin kanssa.

Vaihtoehto Vastaava jäljitysmerkintä Kuvaus Koskee seuraavia
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS TF 9476 Saa SQL Server luomaan kyselysuunnitelman käyttämällä yksinkertaisen sisältymisen oletusta liitoksille kyselyn optimoijan kardinaliteetin estimointimallissa SQL Server 2014:ssä (12.x) tai uudemmassa.
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES TF 4137 Saa SQL Server:n luomaan suunnitelman käyttäen vähimmäisselektiivisyyttä arvioidessaan suodattimien AND-predikaatteja korrelaation huomioon ottamiseksi. Tämä vihjeen nimi on rinnakkainen seurantamerkinnän 4137 kanssa, kun sitä käytetään SQL Server 2012:n (11.x) ja aiempien versioiden kardinaliteetin arviointimallin kanssa, ja sillä on samanlainen vaikutus, kun jäljitysmerkintää 9471 käytetään SQL Server 2014:n (12.x) tai uudemman version kardinaliteetin arviointimallin kanssa.
DISABLE_BATCH_MODE_ADAPTIVE_JOINS Poistaa käytöstä komentojonotilan mukautuvat liitokset. alkaen SQL Server 2017:ssä
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK Poistaa käytöstä erätilan myönnetyn muistimäärän palautteen. alkaen SQL Server 2017:ssä
DISABLE_DEFERRED_COMPILATION_TV Poistaa käytöstä taulukon muuttujan lykätyn kääntämisen. alkaen SQL Server 2019:ssä
DISABLE_INTERLEAVED_EXECUTION_TVF Poistaa käytöstä monilauseisten taulukkoarvoisten funktioiden lomitetun suoritustoiminnon. alkaen SQL Server 2017:ssä
DISABLE_OPTIMIZED_NESTED_LOOP TF 2340 Ohjeistaa kyselyn käsittelijää olemaan käyttämättä lajittelutoimintoa (erälajittelua) optimoiduissa sisäkkäisissä silmukkaliitoksissa kyselysuunnitelmaa luotaessa.
DISABLE_OPTIMIZER_ROWGOAL TF 4138 Saa SQL Server luomaan suunnitelman, joka ei käytä rivitavoitteen muokkauksia kyselyissä, jotka sisältävät seuraavia avainsanoja:

  • ALKUUN
  • OPTIO (NOPEA N)
  • IN
  • OLEMASSA
DISABLE_PARAMETER_SNIFFING TF 4136 Ohjeistaa kyselyn optimoijan käyttämään tietojen keskiarvojakoa käännettäessä kyselyä, jossa on yksi tai useampi parametri. Tämä ohje tekee kyselysuunnitelmasta riippumattoman sen parametrin arvon, jota käytettiin ensimmäisen kerran kyselyä käännettäessä. Tämän vihjeen avulla voit ohittaa tietokantalaajuisen määrityksen asetuksen PARAMETER_SNIFFING=OFF.
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK Poistaa käytöstä rivitilan muistimyönnetyn palautteen. alkaen SQL Server 2019:ssä
DISABLE_TSQL_SCALAR_UDF_INLINING Poistaa käytöstä skalaarisen UDF-inliningin. alkaen SQL Server 2019:ssä
DISALLOW_BATCH_MODE Poistaa käytöstä erätilan suorittamisen. alkaen SQL Server 2019:ssä
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS TF 4139 Ottaa käyttöön automaattisesti luodut pikatilastot (histogrammin muutokset) mille tahansa johtavalle indeksisarakkeelle, jolle tarvitaan kardinaliteetin estimointia. Kardinaliteetin arvioimiseen käytettävää histogrammia muokataan kyselyn käännösaikana vastaamaan sarakkeen todellista enimmäis- tai vähimmäisarvoa.
ENABLE_QUERY_OPTIMIZER_HOTFIXES TF 4199 Ottaa käyttöön kyselyn optimoijan hotfix-korjaukset (muutokset, jotka julkaistaan SQL Server Cumulative Updatet -päivityksissä ja Service Pack -paketeissa). Tämän vihjeen avulla voit ohittaa tietokantalaajuisen määrityksen asetuksen QUERY_OPTIMIZER_HOTFIXES=KÄYTÖSSÄ.
FORCE_DEFAULT_CARDINALITY_ESTIMATION TF 9481 Pakottaa kyselyn optimoijan käyttämään tietokannan nykyistä yhteensopivuustasoa vastaavaa kardinaliteetin estimointimallia. Tämän vihjeen avulla voit ohittaa tietokantalaajuisen määrityksen asetuksen LEGACY_CARDINALITY_ESTIMATION=KÄYTÖSSÄ.
FORCE_LEGACY_CARDINALITY_ESTIMATION TF 9481 Pakottaa kyselyn optimoijan käyttämään SQL Server 2012:n (11.x) ja aiempien versioiden kardinaliteetin estimointimallia. Tämän vihjeen avulla voit ohittaa tietokantalaajuisen määrityksen asetuksen LEGACY_CARDINALITY_ESTIMATION=KÄYTÖSSÄ.
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n Pakottaa kyselyn optimoijan toiminnan kyselytasolla. Tämä tapahtuu aivan kuin kysely olisi käännetty tietokannan yhteensopivuustasolla n, jossa n on tuetun tietokannan yhteensopivuustaso. Kohdassa sys.dm_exec_valid_use_hints on luettelo tällä hetkellä tuetuista n-arvoista. alkaen SQL Server 2017:stä (14.x) CU10

Lisätietoja on artikkelissa Vihjeet (Transact-SQL) – kysely.

Lisätietoja

Tämä päivitys sisältyy SQL Server 2016:n Service Pack 1:een.

Tietoja SQL Server 2016 -koontiversioista

Jokainen uusi SQL Server 2016:n koontiversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen koontiversioon. Suosittelemme, että asennat uusimman SQL Server 2016:n koontiversion.

Skenaariot, joissa tarvitaan vihjeitä SQL Server -kyselyn optimoijan (QO) toimimisesta, ovat melko yleisiä, ja perinteisesti niitä pyritään käsittelemään käyttämällä useita (dokumentoituja ja dokumentoimattomia) jäljitysmerkintöjä. Kun jäljitysmerkinnät asetetaan yleisesti, niillä voi olla haitallinen vaikutus muihin työkuormiin. Lisäksi niiden ottaminen käyttöön istuntokohtaisesti ei ole käytännöllistä olemassa olevissa sovelluksissa, ja niiden ottaminen käyttöön kyselyä kohden OPTION QUERYTRACEON -komennolla edellyttää sysadminin kiinteän palvelinroolin jäsenyyttä. (Vaikka tämän toiminnon voi kiertää käyttämällä suunnitelmaopasta tai tallennettua toimintosarjaa, tarvitaan silti laajennetut tunnistetiedot.)

Jäljitysmerkintöjä käytetään palvelimen tiettyjen ominaisuuksien väliaikaiseen määrittämiseen tai tietyn toiminnan poistamiseen käytöstä. Niitä voi olla vaikea hallita ja ymmärtää.

Lisätietoja seurantamerkinnöistä on Microsoft Developer Network (MSDN) -sivuston ohjeaiheessa Jäljitysmerkinnät (Transact-SQL).

Viitteet

Lue tietoja Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta.