ĮŽANGA
"Microsoft SQL Server" versijos, vėlesnė nei SQL serverio 2000 3 pakeitimų paketas (SP3), dauguma karštųjų pataisų užklausos optimizatoriui pateikta numatytoji būsena, kad esami gamybos Klientai negalėtų matyti numatytų plano pakeitimų, dėl kurių gali kilti našumo regresijos. Pirmiausia kiekviena karštoji pataisa buvo pristatyta su atskira sekimo vėliavėle. Vėlesnė ši praktika buvo pakeista, kad daugelis vėliavėlių būtų sujungtos su vienu sekimo vėliavėle (4199). Ši nauja praktika buvo inicijuota keliose versijose pradedant Šiais naujinimais:
-
"SQL Server 2005" 3 pakeitimų paketo (SP3) Kaupiamasis naujinimas 6
-
"SQL Server 2008" 1 pakeitimų paketo (SP1) kaupiamojo naujinimo paketas 7
-
SQL serverio 2008 R2 (RTM)
Sekimo vėliavėlė "4199" buvo naudojama norint rinkti karštąsias pataisas, kurios buvo skirtos pagal numatytuosius pakeitimus būsimame leidime, o kitos sekimo vėliavėlės buvo naudojamos situacijoms, kai pataisymas nebuvo skirtas dabartinei formai neatlikti numatytosios. Pradedant nuo SQL serverio 2016 RTM, duomenų bazės COMPATIBILITY_LEVEL parametras bus naudojamas įgalinti sekimo vėliavėlę 4199-pagal numatytuosius parametrus. Šiame straipsnyje aprašomi mechanika ir strategija, kaip su "2016" susijusių pataisų planavimas bus pateiktas "SQL Server" ir naujesnėse versijose.
Daugiau informacijos
"SQL Server 2016" Sekimo vėliavėlė 4199 karštąsias pataisas, atliekamas su ankstesnėmis "SQL Server" versijomis, bus įgalinta dalyje duomenų bazės COMPATIBILITY_LEVEL 130 be sekimo vėliav4199 ėlės įgalinta. Sekimo vėliavėlė 4199 bus naudojama bet kurioms būsimoms "SQL Server 2016" duomenų bazių, naudojančių "130" suderinamumo lygį, paleileidimui. Kadangi sekimo žymė 4199 rekomenduojama tik tiems klientams, kurie mato konkrečias veikimo problemas, klientams patariama pašalinti sekimo žymę 4199, kai jie perkelia jų duomenų bazes į naujausią suderinamumo lygį, nes sekimo vėliavėlė 4199 bus pakartotinai naudojama būsimoms pataisose, kurios gali būti netaikomos jūsų taikomajai programai ir gali sukelti netikėtus gamybos sistemos našumo pakitimus. Tai reiškia, kad skirtingas sekimo vėliavėlės 4199 pataisymai įgalinami kiekvienam suderinamumo lygiui, kurį palaiko pateiktas produkto leidimas. Naujausias suderinamumo lygis jau leidžia visus ankstesnius pataisymus dalyje sekimo vėliavėlė 4199. Tai reiškia, kad duomenų bazės versijos naujinimas į naujausią suderinamumo lygį ir šalinimo vėliavėlės "4199" vis dar leidžia visi pataisymai, kuriuos darbo krūvis buvo didinant prieš duomenų bazės atnaujinimą, tiesiog nėra naujos pataisos. Jei vėliau Klientai susiduria su užklausų našumo problemomis, Eksperimentuokite naudodami parinktį Įjungti duomenų bazės aprėptį QUERY_OPTIMIZER_HOTFIXES arba užklausos užuominą ENABLE_QUERY_OPTIMIZER_HOTFIXES bandomoje aplinkoje, kad nustatytumėte, ar problemos pašalinamos. Skaitykite dokumentus apie " QUERY_OPTIMIZER_HOTFIXES".
Pastaba. Pagal numatytuosius duomenų bazes, kurios kuriamos "SQL Server" 2016, naudojamos suderinamumo lygio 130 ir jau įgalintos naujos optimizatoriaus logikos. Pagrindinis šio modelio pranašumas yra tas, kad jis sumažina gamybos sistemų riziką atnaujinimo proceso metu. Šis metodas atskiria naujos pagrindinės "SQL Server" versijos diegimą automatiškai įgalinant visus naujus užklausos procesoriaus pakitimus. Kadangi pagrindinės versijos versijos keičia failo formatą ir nėra atšaukiamos, vertėtų naudoti COMPATIBILITY_LEVEL parametrą, nes tai leidžia klientui greitai grįžti, jei naujinant versiją randama netikėta plano veikimo problema. Jei klientas randa netikėtą plano pakeitimą, kuris blokuoja taikomosios programos versijos naujinimą, klientas gali supaprastinti padėtį pritaikydamas atitinkamo plano užuominą naudodamas užklausos saugyklą, kad būtų galiojantis išankstinis planas, arba gali supaprastinti situaciją susisiekdamas su "Microsoft" klientų palaikymo tarnyba, kad būtų lengviau pateikti sprendimo arba karštųjų pataisų problemą. Kai visos problemos yra sumažinamos, atnaujinimas gali tęstis. Klientai turėtų įtraukti šią galimybę į savo versijos naujinimo planavimą, skirtą "SQL Server" 2016. Toliau pateiktoje lentelėje paaiškinama, kaip sekimo žymė 4199 veiks pradedant nuo SQL serverio 2016.
Nustatymas |
SQL suderinamumo lygis |
Sekimo vėliavėlė 4199 |
Optimizavimo karštosios pataisos prieš SQL serverio 2016 RTM |
Optimizavimo karštosios pataisos po SQL serverio 2016 RTM |
---|---|---|---|---|
1. |
120 |
Išjungti |
Išjungta |
Išjungta |
2. |
120 |
" |
Įjungtas |
Išjungta |
3. |
130 |
Išjungti |
Įgalinta suderinamumo lygiu |
Išjungta |
4. |
130 |
" |
Įgalinta suderinamumo lygiu |
Įgalinta suderinamumo lygiu |
Pastaba Parametras Nr. 3 rekomenduojamas klientams, kurie naujai naujinama "SQL Server 2016". Pagrindiniams leidimams, naudojantiems "SQL Server 2016", "Microsoft" planuoja toliau naudoti šį priežiūros modelį optimizavimo karštosios pataisos. Pagal numatytuosius nustatymą arba kiekvieną leidimą, bet koks sekimo vėliavėlės 4199 karštąsias pataisas iš ankstesnio leidimo bus įgalinta kito suderinamumo lygiu. Tai reiškia, kad klientams rekomenduojama būsena, kai jie bus perkelti į naujausią suderinamumo lygį, bus sekimo žymė 4199 išjungta. Vėlesnės karštosios pataisos naudoja sekimo vėliavėlę "4199", kad įgalintumėte pataisas klientams, kurie turi įgalinti konkrečias karštąsias pataisas taikomojoje programoje. Klientams patariama išjungti sekimo vėliavėlę "4199", kai taikomoji programa bus atnaujinta į naujausią suderinamumo lygį, kad nereikėtų netikėtai įjungti netikėtai būsimų optimizatoriaus. Atnaujinus į naujausią suderinamumo lygį ir pašalinus sekimo vėliavėlę, "4199" vis dar leidžia visi pataisymai, kurių darbo krūvis buvo efektyvus prieš naujinant versiją, tiesiog nėra naujos pataisos.
Pastaba. Nors daug optimizavimo karštųjų pataisų įgalintos dalyje sekimo vėliavėlė 4199, kai kurios naudoja kitus sekimo vėliavėles. Sekimo vėliavėlė 4199 istoriškai apėmė sekimo vėliavėles, kurios yra plačiai taikomos ir gali būti įgalintos pagal numatytuosius ir būsimus leidimo. Alternatyvių pėdsakų vėliavėlės naudojamos karštųjų pataisų, kuriose sąlygos yra labai specifinės tik keliems klientams, kai pataisa gali sukelti našumo regresijos kitose taikomosiose programose arba kai vidinė funkcija gali matyti pakeitimus prieš tai, kai jis bus parengtas visiems. "Microsoft" toliau naudos kitus sekimo vėliavėles, kiek reikia aptarnaujant produktą. Pastaba. Šiame straipsnyje aptariami modelio, kaip paleisti sekimo vėliavėlę 4199 karštąsias pataisas naujausiame produkto suderinamumo lygiu. (Publikavimo metu, tai yra SQL serverio 2016.) Optimizavimo karštosios pataisos gali būti išleistos senesnėse "SQL Server" versijose arba prastesniuose "SQL Server 2016" suderinamumo lygiuose (120 arba anksčiau). "Microsoft" įvertins kiekvieną atvejį ir nustatys, ar naudoti sekimo vėliavėlę 4199 arba kitą sekimo vėliavėlę. Kadangi ne karštųjų pataisų pakeitimai taip pat įgalinami, kai atliekamas perėjimas prie vėlesnio suderinamumo lygio, nėra jokių konkrečių vilčių, kad naujinant versiją nebus atliekami jokie plano pakeitimai (naudojant arba nenaudojant sekimo vėliavėlės 4199). Klientai turėtų visada kruopščiai tikrinti suderinamumo lygio pokyčius gamybos taikomosiose programose ir naudoti klimato kaitos švelninimo technologijas, pvz., užklausų saugyklą, jei yra su plano pasirinkimu susijusi veikimo problema. Nuorodai toliau pateiktoje lentelėje išvardytos sekimo vėliavėlės, kurios buvo naudojamos užklausos procesoriui, prieš įdiegiant sekimo vėliavėlę 4199.
"Microsoft" žinių bazės straipsnis |
Sekimo žymė |
---|---|
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 serverio 2005
Ši problema buvo pirmą kartą išleista Kaupiamasis naujinimas 6 SQL serverio 2005 Service Pack 3. Daugiau informacijos apie šį kaupiamųjų naujinimų paketą rasite spustelėję toliau nurodytą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
974648 Kaupiamojo naujinimo paketas 6 SQL serverio 2005 3 pakeitimų paketuiPastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2005 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
960598 SQL serverio 2005 komponavimo versijos, išleistos po "SQL Server 2005" 3 pakeitimų paketo išleidimo"Microsoft SQL Server" 2005 karštosios pataisos kuriamos konkretiems "SQL Server" pakeitimų paketams. Norėdami įdiegti "SQL Server 2005" 3 pakeitimų paketą, turite taikyti SQL serverio 2005 3 pakeitimų paketo karštąją pataisą. Pagal numatytuosius "SQL Server" pakeitimų pakete pateiktas karštąsias pataisas yra įtraukta į kitą "SQL Server" pakeitimų paketą.
SQL serverio 2008
Šios problemos taisymas pirmą kartą buvo išleistas Kaupiamasis naujinimas 7. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server 2008", spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
973601 Kaupiamojo naujinimo paketas 7 SQL serverio 2008Pastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2008 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
956909 "SQL Server 2008" komponavimo versijos, išleistos po "SQL Server" 2008 išleidimo
"SQL Server" 2008 SP1
Ši problema buvo pirmą kartą išleista Kaupiamasis naujinimas 7 SQL serverio 2008 1 pakeitimų paketui. Daugiau informacijos apie šį kaupiamųjų naujinimų paketą rasite spustelėję toliau nurodytą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
979065 Kaupiamojo naujinimo paketas 7, skirtas "SQL Server 2008" 1 pakeitimų paketuiPastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2008 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
970365 SQL serverio 2008 komponavimo versijos, išleistos po "SQL Server 2008" 1 pakeitimų paketo išleidimo"Microsoft SQL Server" 2008 karštosios pataisos kuriamos konkretiems "SQL Server" pakeitimų paketams. Norėdami įdiegti "SQL Server 2008" 1 pakeitimų paketą, turite įdiegti "SQL Server 2008" 1 pakeitimų paketo karštąją pataisą. Pagal numatytuosius "SQL Server" pakeitimų pakete pateiktas karštąsias pataisas yra įtraukta į kitą "SQL Server" pakeitimų paketą.
SQL serverio 2008 R2
"SQL Server 2008 R2" leidimo versijoje sekimo vėliavėlė 4135 buvo netyčia praleista iš sekimo žymių sąrašo, kurį galima valdyti "T4199". Tačiau tai buvo išspręsta Kaupiamasis naujinimas 1 SQL serverio 2008 R2. Taigi, šis Komponavimo versija ir "SQL Server" 2005 ir "SQL Server 2008" palaikomi leidimai – "T4199" užtenka įgalinti šį ir kitus sekimo vėliavas, išvardytus šiame straipsnyje.
SQL serverio 2012 ir vėlesnės versijos
Sekimo vėliavėlė 4199 yra įtraukta į "SQL Server 2012" ir naujesnes versijas versijas.
Kaip įgalinti sekimo vėliavėlę 4199
Galite įjungti sekimo vėliavėlę 4199 paleisties metu arba vartotojo seanse. Šis sekimo vėliavėlė turi pasaulinį lygį arba sesijos lygio efektą. Norėdami įgalinti sekimo vėliavėlę 4199, naudokite komandą DBCC TRACEON arba naudokite – T 4199 kaip paleisties parametrą. Jei naudojama DBCC TRACEON\TRACEOFF , tai neatkurs naujo talpyklos plano, skirto saugomiems procedūroms. Planai gali būti talpykloje, sukurtoje be sekimo vėliavėlės. Išsamios informacijos apie tai, kaip įjungti arba išjungti sekimo vėliavėles, ir paaiškinimų apie visuotinio ir seanso lygio sekimo žymes, ieškokite šiose "SQL Server" knygų interneto knygose:
Nuorodos
Daugiau informacijos apie "SQL Server" naujinimų pavadinimų suteikimo schemą rasite spustelėję toliau nurodytą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
822499 Nauja vardų suteikimo schema, skirta "Microsoft SQL Server" programinės įrangos naujinimų paketams Daugiau informacijos apie programinės įrangos naujinimo terminiją rasite spustelėję toliau nurodytą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
824684 Įprastos terminologijos, vartojamos "Microsoft" programinės įrangos naujinimams apibūdinti, aprašas