KB3189813 – Opdateringen introducerer argumentet USE HINT forespørgselstip i SQL Server 2016

Gælder for
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)

Resumé

Denne opdatering introducerer et nyt argument for forespørgselstip, USE HINT, som gør det muligt at køre forespørgselsoptimering uden administratorrettigheder eller uden at være medlem af sysadmin-serverrollen. Syntaksen for dette nye tip til forespørgsel ser således ud:

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

      

Denne opdatering introducerer også følgende tipindstillinger, der kan bruges sammen med argumentet USE HINT.

Indstilling Tilsvarende sporingsflag Beskrivelse Gælder for
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS TF 9476 Får SQL Server til at generere en forespørgselsplan ved hjælp af Simple Containment-antagelsen i stedet for standardantagelsen om Base Containment for joinforbindelser under forespørgselsoptimeringens kardinalitetsestimationsmodel i SQL Server 2014 (12.x) eller nyere.
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES TF 4137 Får SQL Server til at generere en plan ved hjælp af minimal selektivitet ved estimering af AND-prædikater for filtre for at tage højde for korrelation. Tipnavnet er parallelt med sporingsflag 4137, når det bruges med modellen til estimering af kardinalitet i SQL Server 2012 (11.x) og tidligere versioner, og har lignende effekt, når sporingsflag 9471 bruges med modellen til estimering af kardinalitet i SQL Server 2014 (12.x) eller nyere.
DISABLE_BATCH_MODE_ADAPTIVE_JOINS Deaktiverer tilpassede deltagelser i batchtilstand. start i SQL Server 2017
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK Deaktiverer batchtilstandens hukommelse og giver feedback. start i SQL Server 2017
DISABLE_DEFERRED_COMPILATION_TV Deaktiverer udskudt kompilering af tabelvariabel. start i SQL Server 2019
DISABLE_INTERLEAVED_EXECUTION_TVF Deaktiverer interleavet udførelse for funktioner med flere sætninger med tabelværdier. start i SQL Server 2017
DISABLE_OPTIMIZED_NESTED_LOOP TF 2340 Instruerer forespørgselsprocessoren om ikke at bruge en sorteringshandling (batchsortering) til optimerede indlejrede sløjfejoinforbindelser, når der oprettes en forespørgselsplan.
DISABLE_OPTIMIZER_ROWGOAL TF 4138 Får SQL Server til at generere en plan, der ikke bruger ændringer af rækkemål med forespørgsler, der indeholder disse nøgleord:

  • TOP
  • ALTERNATIV (FAST N)
  • IN
  • EXISTS
DISABLE_PARAMETER_SNIFFING TF 4136 Instruerer forespørgselsoptimering til at bruge gennemsnitlig datafordeling under kompilering af en forespørgsel med en eller flere parametre. Denne instruktion gør forespørgselsplanen uafhængig af den parameterværdi, der først blev brugt, da forespørgslen blev kompileret. Brug dette tip til at tilsidesætte indstillingen for konfiguration med databaseomfang PARAMETER_SNIFFING=FRA.
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK Deaktiverer rækketilstandens hukommelse, og giv feedback. start i SQL Server 2019
DISABLE_TSQL_SCALAR_UDF_INLINING Deaktiverer skalar-UDF-indlejring. start i SQL Server 2019
DISALLOW_BATCH_MODE Deaktiverer kørsel af batchtilstand. start i SQL Server 2019
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS TF 4139 Aktiverer automatisk genereret hurtig statistik (histogramændring) for alle foranstillede indekskolonner, for hvilke der kræves en estimering af kardinalitet. Det histogram, der bruges til at estimere kardinalitet, justeres på kompileringstidspunktet for forespørgslen for at tage højde for den faktiske maksimums- eller minimumsværdi for denne kolonne.
ENABLE_QUERY_OPTIMIZER_HOTFIXES TF 4199 Aktiverer hotfixes til forespørgselsoptimering (ændringer, der er frigivet i SQL Server Cumulative Opdateringer og Service Packs). Brug dette tip til at tilsidesætte indstillingen for konfiguration af databaseområde QUERY_OPTIMIZER_HOTFIXES=ON.
FORCE_DEFAULT_CARDINALITY_ESTIMATION TF 9481 Tvinger forespørgselsoptimering til at bruge en model til estimering af kardinalitet, som svarer til det aktuelle databasekompatibilitetsniveau. Brug dette tip til at tilsidesætte indstillingen Konfiguration med databaseomfang LEGACY_CARDINALITY_ESTIMATION=ON.
FORCE_LEGACY_CARDINALITY_ESTIMATION TF 9481 Tvinger forespørgselsoptimering til at bruge modellen til estimering af kardinalitet i SQL Server 2012 (11.x) og tidligere versioner. Brug dette tip til at tilsidesætte indstillingen Konfiguration med databaseomfang LEGACY_CARDINALITY_ESTIMATION=ON.
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n Gennemtvinger funktionsmåden for forespørgselsoptimering på forespørgselsniveau. Denne funktionsmåde sker, som om forespørgslen blev kompileret med databasekompatibilitetsniveau n, hvor n er et understøttet databasekompatibilitetsniveau. Se sys.dm_exec_valid_use_hints for en liste over aktuelt understøttede værdier for n. start i SQL Server 2017 (14.x) CU10

Du kan finde flere oplysninger i Tip (Transact-SQL) - Query.

Flere oplysninger

Denne opdatering er inkluderet i Service Pack 1 til SQL Server 2016.

Om SQL Server 2016-builds

Hvert nyt build til SQL Server 2016 indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med det tidligere build. Vi anbefaler, at du installerer det nyeste build til SQL Server 2016.

Scenarier, hvor funktionsmåden for SQL Server forespørgselsoptimering (QO) skal antydes, er ret almindelige, og traditionelt håndteres de ved hjælp af flere (dokumenterede og udokumenterede) sporingsflag. Når sporingsflag angives globalt, kan de dog have en negativ effekt på andre arbejdsbelastninger. Desuden er det ikke praktisk at aktivere dem pr. session med eksisterende programmer, og aktivering af dem pr. forespørgsel med OPTION QUERYTRACEON kræver medlemskab af sysadmin-rollen med fast serverrolle. Selvom du kan løse problemet ved hjælp af en vejledning til plan eller en gemt procedure, kræves der stadig øgede legitimationsoplysninger.

Sporingsflag bruges til midlertidigt at angive bestemte serveregenskaber eller til at slå en bestemt funktionsmåde fra. De kan være svære at administrere og forstå.

Se emnet Trace Flags (Transact-SQL) på webstedet MSDN (Microsoft Developer Network) (MSDN) for at få flere oplysninger om sporingsflag.

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.