Applies ToMicrosoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Standard X64 Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Workgroup Edition SQL Server 2008 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Workgroup SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

INTRODUKTION

Versioner af Microsoft SQL Server, der er nyere end SQL Server 2000 Service Pack 3 (SP3), har leveret de fleste hotfixes til forespørgselsoptimering i en standardtilstand, der forhindrer eksisterende produktionskunder i at se forventede ændringer i planen, der kan medføre regressioner af ydeevnen. I starten blev hvert hotfix leveret under et separat sporingsflag. Senere blev denne fremgangsmåde ændret, så de fleste flag blev kombineret under et enkelt sporingsflag (4199). Denne nye fremgangsmåde blev startet på tværs af flere versioner startende med følgende opdateringer:

  • SQL Server 2005 Service Pack 3 (SP3) Kumulativ opdatering 6

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

  • SQL Server 2008 R2 (RTM)

Sporingsflag 4199 blev brugt til at indsamle hotfixes, der var beregnet til at blive tilgængelige som standard i en fremtidig version, hvorimod andre sporingsflag blev brugt i situationer, hvor en rettelse ikke var beregnet til at blive en rettelse som standard i den aktuelle formular. Fra og SQL Server 2016 RTM vil indstillingen for database COMPATIBILITY_LEVEL blive brugt til at aktivere sporingsflag 4199-relaterede hotfixes som standard. I denne artikel beskrives teknikken og politikken for, hvordan hotfixes, der påvirker planen, leveres til SQL Server 2016 og nyere versioner.

Flere oplysninger

I SQL Server 2016 bliver sporingsflag 4199-hotfixes, der er foretaget i tidligere versioner af SQL Server, aktiveret under database COMPATIBILITY_LEVEL 130 uden sporingsflag 4199 aktiveret. Sporingsflag 4199 bruges til at udgive alle fremtidige SQL Server 2016-hotfixes til databaser ved hjælp af 130-kompatibilitetsniveauet. Da sporingsflag 4199 kun anbefales til kunder, der oplever bestemte problemer med ydeevnen, anbefales kunderne at fjerne sporingsflag 4199, når de overfører deres databaser til det nyeste kompatibilitetsniveau, da sporingsflag 4199 genbruges til fremtidige rettelser, der muligvis ikke gælder for dit program, og kan medføre uventede ændringer i planens ydeevne i et produktionssystem. Det betyder, at forskellige sporingsflag 4199-hotfixes er aktiveret for hvert kompatibilitetsniveau, der understøttes i en given produktudgivelse. Det nyeste kompatibilitetsniveau aktiverer allerede alle tidligere rettelser under sporingsflag 4199. Det betyder, at opgraderingen af en database til det nyeste kompatibilitetsniveau og fjernelse af sporingsflag 4199 stadig muliggør alle rettelser, som en arbejdsbelastning udnyttede før databaseopgraderingen, men ikke nye rettelser. Hvis kunder på et senere tidspunkt oplever problemer med ydeevnen for forespørgsler, kan du eksperimentere med at aktivere den databaseomfangede indstilling QUERY_OPTIMIZER_HOTFIXES eller forespørgselstip ENABLE_QUERY_OPTIMIZER_HOTFIXES i et testmiljø for at afgøre, om problemerne er løst. Se dokumentationen om QUERY_OPTIMIZER_HOTFIXES

Bemærk Som standard bruger databaser, der er oprettet i SQL Server 2016, kompatibilitetsniveau 130, og den nye optimererlogik er allerede aktiveret.Den største fordel ved denne model er, at den reducerer risikoen for produktionssystemer under opgraderingsprocessen. Denne fremgangsmåde adskiller installationen af en ny større version af SQL Server automatisk aktivering af alle nye ændringer i forespørgselsprocessoren. Da større versionsopgradering ændrer filformatet og ikke kan fortrydes, er det en god ide at bruge indstillingen COMPATIBILITY_LEVEL, da dette gør det muligt for en kunde hurtigt at nedgradere, hvis der findes et uventet problem med planens ydeevne under en opgradering. Hvis en kunde finder en uventet planændring, der blokerer en programopgradering, kan kunden afhjælpe situationen ved at anvende et passende plantip ved at bruge Forespørgsel Store til at gennemtvinge den tidligere plan, eller det kan afhjælpe situationen ved at kontakte Microsofts kundesupport for at få hjælp til problemet for at finde en løsning eller et hotfix. Når alle problemer bliver mindre, kan opgraderingen fortsætte. Kunder skal integrere denne funktionalitet i deres opgraderingsplanlægning for SQL Server 2016.I følgende tabel beskrives modellen for, hvordan sporingsflag 4199 fungerer fra og SQL Server 2016.

Indstilling

SQL på kompatibilitetsniveau

Sporingsflag 4199

Hotfixes til Optimizer før SQL Server 2016 RTM

Hotfixes for Optimizer efter SQL Server 2016 RTM

1.

120

Fra

Deaktiveret

Deaktiveret

2.

120

Til

Aktiveret

Deaktiveret

3.

130

Fra

Aktiveret efter kompatibilitetsniveau

Deaktiveret

4.

130

Til

Aktiveret efter kompatibilitetsniveau

Aktiveret efter kompatibilitetsniveau

Bemærk Indstilling nej. 3 anbefales til kunder, der for nyligt opgraderer til SQL Server 2016.For større udgivelser efter SQL Server 2016 planlægger Microsoft at fortsætte med at bruge denne serviceringsmodel til optimizer hotfixes. Som standard, eller hver udgivelse, bliver alle sporingsflag 4199-hotfixes fra den forrige version aktiveret på det næste kompatibilitetsniveau. Det betyder, at den anbefalede tilstand for kunder, når de har overført til det nyeste kompatibilitetsniveau, vil være at spore flag 4199 deaktiveret. Senere hotfixes bruger sporingsflag 4199 til at aktivere rettelser for kunder, der skal aktivere disse bestemte hotfixes i et program. Kunder rådes til at deaktivere sporingsflag 4199, efter et program er blevet opgraderet til det nyeste kompatibilitetsniveau for at undgå uventet fremtidige ændringer af optimeret funktionalitet aktiveret på et program. Opgraderingen til det nyeste kompatibilitetsniveau og fjernelse af sporingsflag 4199 giver stadig adgang til alle rettelser, som en arbejdsbelastning udnyttede før opgraderingen, men ikke nye rettelser.

Bemærk Mens mange hotfixes til optimizer er aktiveret under sporingsflag 4199, bruger nogle andre sporingsflag. Sporingsflag 4199 dækkes historisk sporflag, der er alment gældende og som standard vil blive aktiveret i en fremtidig version. Alternative sporingflag bruges i hotfixes, hvor betingelserne er meget specifikke for kun nogle få kunder, hvor rettelsen kan forårsage regressioner af ydeevnen i andre typer programmer, eller hvor den interne funktionalitet kan se ændringer, før den er klar til at blive aktiveret for alle. Microsoft fortsætter med at bruge andre sporingsflag efter behov for at servicere produktet.Bemærk! Denne artikel fokuserer på modellen til frigivelse af sporingsflag 4199-hotfixes på det nyeste kompatibilitetsniveau for det nyeste produkt. (På udgivelsestidspunktet er dette SQL Server 2016.) Hotfixes til Optimizer kan udgives på ældre versioner af SQL Server eller på lavere kompatibilitetsniveauer (120 eller tidligere) af SQL Server 2016. Microsoft evaluerer hver sag og afgør, om der skal bruges sporingsflag 4199 eller et andet sporingsflag. Da ikke-hotfix-ændringer også er aktiveret, når der foretages en flytning til et senere kompatibilitetsniveau, er der intet specifikt løfte om, at der ikke vil ske nogen planændringer under en opgradering (med eller uden sporingsflag 4199). Kunder bør altid teste ændringer af kompatibilitetsniveauet omhyggeligt for produktionsprogrammer og bruge afhjælpningsteknologier som f.eks. Forespørgsels Store, hvis der er et problem i forbindelse med planlægningsrelateret ydeevne.Til reference blev følgende sporingsflag brugt til hotfixes til forespørgselsprocessoren før introduktionen af sporingsflag 4199:

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 og nyere versioner

Sporingsflag 4199 er inkluderet i udgivelsesversionerne af SQL Server 2012 og nyere versioner.

Sådan aktiveres sporingsflag 4199

Du kan aktivere sporingsflag 4199 ved start eller i en brugersession. Dette sporingsflag har enten en effekt på globalt niveau eller sessionsniveau. Hvis du vil aktivere sporingsflag 4199, skal du bruge KOMMANDOEN DBCC TRACEON eller bruge -T 4199 som startparameter.Hvis DBCC TRACEON\TRACEOFF bruges, genoprettes der ikke en ny cachelagret plan for gemte procedurer. Planer kunne være i cachen, der blev oprettet uden sporingsflaget.Hvis du vil have detaljerede oplysninger om, hvordan du aktiverer eller deaktiverer sporingsflag og forklaringer til sporingsflag på globalt niveau og på sessionsniveau, skal du se følgende emner i SQL Server Online-bøger:

Referencer

Du kan finde flere oplysninger om navngivningsskemaet for SQL Server opdateringer ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

822499 Nyt navngivningsskema til Microsoft SQL Server softwareopdateringspakker Du kan finde flere oplysninger om softwareopdateringsterminologi ved at klikke på følgende artikelnummer for at få vist artiklen i Microsoft Knowledge Base:

824684 Beskrivelse af den standardterminologi, der bruges til at beskrive Microsoft-softwareopdateringer

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.