Sammanfattning
Den här uppdateringen innehåller en ny ledtråd för frågor, Använd tips, som gör att du kan köra Query Optimering utan förhöjda autentiseringsuppgifter eller utan att vara medlem i sysadmin-serverrollen. Syntaxen för det nya frågetipset ser ut ungefär så här:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Den här uppdateringen introducerar också följande tips alternativ som kan användas med argumentet Använd tips .
Alternativt |
Motsvarande spårnings flagga |
Beskrivning |
Gäller för |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Gör att SQL Server kan generera en frågeplan med hjälp av den enkla inne slutningen i stället för den standard mässiga inne slutningen för kopplingar, under frågans optimering Typ av kardinalitet i SQL Server 2014 (12. x) eller senare. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Gör att SQL Server kan generera en plan med minsta selektivitet när du uppskattar och predikat för filter för att få ett konto för korrelation. Det här tips namnet är parallellt med spårnings flagga 4137 när den används med en beräknings modell i SQL server 2012 (11. x) och tidigare versioner och har liknande effekt när spårnings flagga 9471 används med en beräknings modell av typen kardinalitet i SQL Server 2014 (12. x) eller högre. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Inaktiverar anpassade kopplingar för gruppläge. |
Starta i SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Inaktiverar feedback om minnes bidrag för batch-läge. |
Starta i SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Inaktiverar tabell variabel uppskjuten kompilering. |
Starta i SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Inaktiverar överlåtande körning för tabell värda funktioner med flera instruktioner. |
Starta i SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Anger att frågeprocessorn inte ska använda en sorterings åtgärd (batch-sortering) för optimerad kapslad loop när en frågeplan skapas. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Gör att SQL Server kan generera en plan där rad måls ändringar inte används för frågor som innehåller följande nyckelord:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Gör att Query optimering används för att använda genomsnittlig data distribution när en fråga kompileras med en eller flera parametrar. Den här instruktionen gör att frågekomponenten är oberoende av det parameter värde som först användes när frågan kompilerades. Använd det här tipset för att åsidosätta konfigurations inställningen för databasens omfattning PARAMETER_SNIFFING = av. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Inaktiverar feedback om minnes bidrag för rad läge. |
Starta i SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Inaktiverar formatering av skalär UDF. |
Starta i SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Inaktiverar körning av batchläge. |
Starta i SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Aktiverar automatisk snabb statistik (histogram ändring) för alla inledande index kolumner för vilka kardinalitet måste göras. Histogrammet som används för att uppskatta kardinalitet kommer att justeras vid kompileringstid med hänsyn till det faktiska max värdet eller minimivärdet för den här kolumnen. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Aktiverar snabb korrigeringar för Query optimering (ändringar publiceras i SQL Server kumulativa uppdateringar och Service Pack). Använd det här tipset för att åsidosätta Konfigurations inställning för databas omfattning QUERY_OPTIMIZER_HOTFIXES = på. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Tvingar Query Optimering att användas Typ av kardinalitet som motsvarar den aktuella kompatibilitetsnivån för databaser. Använd det här tipset för att åsidosätta Konfigurations inställning för databas omfattning LEGACY_CARDINALITY_ESTIMATION = på. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Tvingar Query Optimering att användas Typ av kardinalitet i SQL Server 2012 (11. x) och tidigare versioner. Använd det här tipset för att åsidosätta konfigurationen av databasens omfattning LEGACY_CARDINALITY_ESTIMATION = på. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Framtvingar optimering av frågor på en frågetext. Det här problemet uppstår när frågan har kompilerats med kompatibilitetsnivån för databaser n, där n är en kompatibel kompatibilitetsnivå. Hänvisa tillsys.dm_exec_valid_use_hints för att få en lista med värden som stöds för n. |
Starta i SQL Server 2017 (14. x) CU10 |
Mer information finns i tips (Transact-SQL)-Query.
Mer information
Den här uppdateringen ingår i Service Pack 1 för SQL Server 2016.
Varje ny version för SQL Server 2016 innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående versionen. Vi rekommenderar att du installerar den senaste versionen av SQL Server 2016.
Scenarier där beteendet för SQL Server Query-optimering (QO) måste vara väldelat och traditionellt adresseras genom att använda flera (dokumenterade och inte dokumenterade) spårnings flaggor. Men när spårnings flaggor är inställda globalt kan de få en negativ inverkan på andra arbets belastningar. Att aktivera dem per session är dessutom inte praktiskt med befintliga program och att aktivera dem per fråga med alternativ QUERYTRACEON kräver medlemskap i den fasta Server rollen sysadmin. (Även om du kan undvika det här problemet genom att använda en plan guide eller en lagrad procedur krävs förhöjda autentiseringsuppgifter.) Spårnings flaggor används för att tillfälligt ange specifika Server egenskaper eller för att stänga av ett visst beteende, kan de vara svåra att hantera och förstå. Information om spårnings flaggor finns i avsnittet om spårnings flaggor (Transact-SQL) på webbplatsen Microsoft Developer Network (MSDN).
Referenser
Lär dig mer om terminologin som Microsoft använder för att beskriva program varu uppdateringar.