Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
VĂ€lj ett annat konto.
Du har flera konton
VĂ€lj det konto som du vill logga in med.

Introduktion

Versioner av Microsoft SQL Server senare Àn SQL Server 2000 Service Pack 3 (SP3) levererade de flesta snabbkorrigeringar till frÄgeoptimeraren i lÀget off-by-default för att förhindra att befintliga produktionskunder ser förvÀntade planÀndringar som kan orsaka prestanda regressioner. Till en början levererades varje snabbkorrigering under en separat spÄrningsflagga. Senare har den hÀr övningen Àndrats sÄ att de flesta flaggor kombineras under en enda spÄrningsflagga (4199). Den hÀr nya övningen initierades i flera versioner med början i följande uppdateringar:

  • SQL Server 2005 Service Pack 3 (SP3) kumulativ uppdatering 6

  • SQL Server 2008 Service Pack 1 (SP1) Kumulativ uppdateringspaket 7

  • SQL Server 2008 R2 (RTM)

SpÄra flagga 4199 anvÀndes för att samla in snabbkorrigeringar som var avsedda att bli pÄ-som-standard i en framtida version, medan andra spÄrningsflaggor anvÀndes för situationer dÀr en korrigering inte var avsedd att anvÀndas som standard i det aktuella formulÀret. FrÄn och med SQL Server 2016 RTM anvÀnds databasens COMPATIBILITY_LEVEL-instÀllning för att aktivera spÄrningsflaggan 4199-relaterade snabbkorrigeringar som standard. I den hÀr artikeln beskrivs hÄllfastheten och principen för hur plan som pÄverkar snabbkorrigeringar levereras för SQL Server 2016 och senare versioner.

Mer information

I SQL Server 2016 aktiveras spÄrningsflaggan 4199-snabbkorrigeringar som görs i tidigare versioner av SQL Server under databas COMPATIBILITY_LEVEL 130 utan att spÄrningsflaggan 4199 Àr aktiverad. Trace flag 4199 anvÀnds för att slÀppa eventuella kommande snabbkorrigeringar för SQL Server 2016 för databaser med hjÀlp av kompatibilitetsnivÄn 130. Eftersom SpÄrningsflagga 4199 endast rekommenderas för kunder som har specifika prestandaproblem bör kunderna ta bort spÄrningsflaggan 4199 efter att de har migrerat sina databaser till den senaste kompatibilitetsnivÄn eftersom spÄrningsflaggan 4199 ÄteranvÀnds för framtida korrigeringar som kanske inte gÀller för programmet och kan orsaka ovÀntade prestandaÀndringar i ett produktionssystem. Det innebÀr att olika spÄrningsflaggan 4199-snabbkorrigeringar aktiveras för varje kompatibilitetsnivÄ som stöds i en viss produktlansering. Den senaste kompatibilitetsnivÄn aktiverar redan alla tidigare korrigeringar under spÄrningsflaggan 4199. Det innebÀr att om du uppgraderar en databas till den senaste kompatibilitetsnivÄn och att borttagning av spÄrningsflagga 4199 fortfarande möjliggör alla korrigeringar som en arbetsbelastning utnyttjar före databasuppgradering, men inte nya korrigeringar. Om kunder senare fÄr problem med frÄgeprestanda kan du experimentera med att aktivera det databasomfattningsalternativ som finns QUERY_OPTIMIZER_HOTFIXES eller frÄgetipset ENABLE_QUERY_OPTIMIZER_HOTFIXES i en testmiljö för att avgöra om problemen Àr lösta. Se dokumentationen om QUERY_OPTIMIZER_HOTFIXES. 

Obs! Som standard anvÀnder databaser som skapas i SQL Server 2016 kompatibilitetsnivÄ 130 och har ny optimeringslogik redan aktiverad.

Den stora fördelen med den hÀr modellen Àr att den minskar risken för produktionssystem under uppgraderingen. Den hÀr metoden skiljer installationen av en ny huvudversion av SQL Server frÄn automatisk aktivering av alla nya Àndringar i frÄgeprocessorn. Eftersom större versionsuppgraderingar Àndrar filformatet och inte kan Ängras Àr det en bra idé att anvÀnda COMPATIBILITY_LEVEL-instÀllningen, eftersom det gör att en kund snabbt kan nedgradera om ett ovÀntat prestandaproblem hittas vid en uppgradering. Om en kund hittar en ovÀntad planÀndring som blockerar en programuppgradering kan kunden underlÀtta situationen genom att anvÀnda en lÀmplig plantips med hjÀlp av Query Store för att tvinga fram den föregÄende planen, eller som kan underlÀtta situationen genom att kontakta Microsofts kundsupport för att fÄ hjÀlp med problemet för att hitta en lösning eller snabbkorrigering. NÀr alla problem har minskats kan uppgraderingen fortsÀtta. Kunderna bör integrera den hÀr funktionen i sin uppgraderingsplanering för SQL Server 2016.

I följande tabell beskrivs modellen för hur spÄrningsflagga 4199 fungerar med början SQL Server 2016.

InstÀllning

SQL kompatibilitetsnivÄ

SpÄra flagga 4199

Snabbkorrigeringar för Optimizer före SQL Server 2016 RTM

Snabbkorrigeringar för Optimizer efter SQL Server 2016 RTM

1.

120

Av

Inaktiverad

Inaktiverad

2.

120

PĂ„

Aktiverad

Inaktiverad

3.

130

Av

Aktiverad av kompatibilitetsnivÄ

Inaktiverad

4.

130

PĂ„

Aktiverad av kompatibilitetsnivÄ

Aktiverad av kompatibilitetsnivÄ

Obs! InstÀllning nr 3 rekommenderas för kunder som nyligen uppgraderar till SQL Server 2016.

För större versioner efter SQL Server 2016 planerar Microsoft att fortsÀtta anvÀnda den hÀr servicemodellen för optimeringskorrigeringar. Som standard aktiveras alla snabbkorrigeringar frÄn den tidigare versionen av en spÄrningsflagga 4199 under nÀsta kompatibilitetsnivÄ. Det innebÀr att det rekommenderade tillstÄndet för kunder nÀr de har migrerat till den senaste kompatibilitetsnivÄn Àr att spÄra flagga 4199 Àr inaktiverad. Senare snabbkorrigeringar anvÀnder spÄrningsflagga 4199 för att aktivera korrigeringar för kunder som mÄste aktivera dessa specifika snabbkorrigeringar i ett program. Kunder bör inaktivera spÄrningsflagga 4199 nÀr ett program har uppgraderats till den senaste kompatibilitetsnivÄn för att undvika att ovÀntade framtida optimeringsÀndringar aktiveras i ett program ovÀntat. NÀr du uppgraderar till den senaste kompatibilitetsnivÄn och tar bort SpÄra flagga 4199, möjliggörs fortfarande alla korrigeringar som en arbetsbelastning utnyttjar före uppgraderingen, men inte nya korrigeringar.

Obs! MÄnga optimeringskorrigeringar aktiveras under spÄrningsflagga 4199, men vissa anvÀnder andra spÄrningsflaggor. Trace flag 4199 historically covered trace flags that are widely applicable and likely to become enabled by default in a future release. Alternativa spÄrningsflaggor anvÀnds i snabbkorrigeringar dÀr villkoren Àr mycket specifika för bara ett fÄtal kunder, dÀr korrigeringen kan orsaka prestanda regressioner i andra typer av program eller dÀr de interna funktionerna kan se Àndringar innan den Àr redo att aktiveras för alla. Microsoft fortsÀtter anvÀnda andra spÄrningsflaggor efter behov för att anvÀnda produkten.

Obs! Den hÀr artikeln fokuserar pÄ modellen dÀr du slÀpper snabbkorrigeringar av Trace Flag 4199 pÄ den senaste kompatibilitetsnivÄn för den senaste produkten. (Vid publiceringen Àr det SQL Server 2016.) Snabbkorrigeringar för Optimizer kan slÀppas pÄ Àldre versioner av SQL Server eller pÄ lÀgre kompatibilitetsnivÄer (120 eller tidigare) av SQL Server 2016. Microsoft utvÀrderar varje Àrende och avgör om du ska anvÀnda spÄrningsflaggan 4199 eller en annan spÄrningsflagga. Eftersom Àndringar som inte Àr snabbkorrigeringar ocksÄ aktiveras nÀr en flyttning görs till en senare kompatibilitetsnivÄ, finns det inget sÀrskilt avtal att inga Àndringar av planen kommer att ske under en uppgradering (med eller utan spÄrningsflagga 4199). Kunderna bör alltid testa Àndringar av kompatibilitetsnivÄn noggrant för produktionsprogram och bör anvÀnda minskningsteknik, till exempel FrÄgearkiv, om det finns ett prestandaproblem som rör planval.

Som referens har följande spÄrningsflaggor anvÀnts för frÄgeprocessor-snabbkorrigeringar innan spÄrningsflagga 4199 introducerades:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 och senare versioner

SpÄra flagga 4199 ingÄr i versionerna av SpÄrning SQL Server 2012 och senare versioner.

SÄ hÀr aktiverar du spÄrning av flagga 4199

Du kan aktivera spÄra flagga 4199 vid start eller i en anvÀndarsession. Den hÀr spÄrningsflaggan har antingen global nivÄ eller sessionsnivÄeffekt. Om du vill aktivera spÄrningsflagga 4199 anvÀnder du kommandot DBCC TRACEON eller anvÀnder -T 4199 som startparameter.

Om DBCC TRACEON\TRACEOFF anvÀnds Äterskapas inte en ny cachelagrad plan för lagrade procedurer. Planer kan finnas i cacheminnet som skapades utan spÄrningsflaggan.

Detaljerad information om hur du aktiverar eller inaktiverar spÄrningsflaggor och förklaringar av globala flaggor och spÄrningsflaggor pÄ sessionsnivÄ finns i följande avsnitt i SQL Server Books Online:

Referenser

Om du vill ha mer information om namngivningsschemat för SQL Server uppdateringar klickar du pÄ följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

822499
Nytt namngivningsschema för Microsoft SQL Server programuppdateringspaket
Om du vill ha mer information om terminologi för programuppdateringar klickar du pÄ följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

824684
Beskrivning av standardterminologin som anvÀnds för att beskriva programvaruuppdateringar för Microsoft

Behöver du mer hjÀlp?

Vill du ha fler alternativ?

Utforska prenumerationsförmÄner, blÀddra bland utbildningskurser, lÀr dig hur du skyddar din enhet med mera.

Communities hjÀlper dig att stÀlla och svara pÄ frÄgor, ge feedback och fÄ rÄd frÄn experter med rika kunskaper.

Hade du nytta av den hÀr informationen?

Hur nöjd Àr du med sprÄkkvaliteten?
Vad pÄverkade din upplevelse?
Genom att trycka pÄ skicka, kommer din feedback att anvÀndas för att förbÀttra Microsofts produkter och tjÀnster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×