SISSEJUHATUS
Microsoft SQL serveri versioonid, mis on hilisem kui SQL Server 2000 Service Pack 3 (SP3), edastas kõige rohkem Kiirparandusi päringu optimeerijale väljas-vaikimisi olekus, et takistada olemasolevatel tootmise klientidel näha oodatud plaani muutusi, mis võivad põhjustada jõudluse regressiooni. Algul edastati iga kiirparandus eraldi jälituslipp alusel. Hiljem muudeti seda tava nii, et enamik lipud olid ühendatud ühe jälituslipp (4199). See uus toiming algatati mitmes versioonis, alustades järgmistest värskendustest.
-
SQL Server 2005 Service Pack 3 (SP3) kumulatiivne Update 6
-
SQL Server 2008 Service Pack 1 (SP1) koondvärskenduses pakett 7
-
SQL Server 2008 R2 (RTM)
Jälituslipp 4199 kasutati, et koguda käigultparandused, mille eesmärk oli saada vaikimisi tulevases versioonis, samas kui muud trace lipud kasutati olukordades, kus parandus polnud mõeldud praegusel kujul vaikimisi kasutatavaks. Alustades SQL Server 2016 RTM, kasutatakse andmebaasi COMPATIBILITY_LEVEL säte Luba jälituslipp 4199 seotud käigultparanduste vaikimisi. Selles artiklis kirjeldatakse, kuidas kavandamist mõjutavad käigultparandused antakse välja SQL Server 2016 ja uuemates versioonides.
Lisateave
SQL Server 2016 on SQL serveri varasemates versioonides tehtud jälituslipp 4199, mis on lubatud andmebaasi COMPATIBILITY_LEVEL 130 alusel, kui jälituslipp 4199 pole lubatud. Jälituslipp 4199 kasutatakse kõigi tulevaste SQL Serveri 2016 kiirparanduste avaldamiseks, kasutades 130 ühilduvuse taset. Kuna jälituslipp 4199 on soovitatav ainult nende klientide jaoks, kes näevad konkreetseid jõudlusprobleeme, soovitatakse klientidel eemaldada jälituslipp 4199 pärast seda, kui nad migreerivad oma andmebaasid uusimale ühilduvuse tasemele, sest jälituslipp 4199 on uuesti kasutusel tulevaste paranduste jaoks, mis ei pruugi teie rakendusele rakenduda, ja võivad põhjustada ootamatuid energiarežiimi muutusi tootmise süsteemis. See tähendab, et erinevad jälituslipp 4199 käigultparandused on lubatud iga ühilduvuse tasemel, mida toetatakse antud toote vabastamist. Tema uusim ühilduvuse tase võimaldab juba kõiki varasemaid parandusi jaotises jälituslipp 4199. See tähendab, et andmebaasi värskendamine uusimale ühilduvuse tasemele ja jälituslipp 4199 on endiselt lubatud kõik parandused, mille töökoormus oli enne andmebaasi uuendamist võimendav, lihtsalt mitte uued parandused. Kui hilisemal ajahetkel klientidel tekib päringu jõudlusprobleemide lahendamine, siis katsetage funktsiooni andmebaasi ulatuse lubamine QUERY_OPTIMIZER_HOTFIXES või päringu vihje ENABLE_QUERY_OPTIMIZER_HOTFIXES test keskkonnas, et teha kindlaks, kas probleemid on lahendatud. Tutvuge QUERY_OPTIMIZER_HOTFIXESdokumentatsiooniga.
Märkus Vaikimisi on SQL Server 2016 loodud andmebaaside ühilduvus tasemel 130 ja on juba lubatud uus optimeerija loogika. Selle mudeli peamiseks eeliseks on see, et versiooniuuenduse käigus vähendatakse tootmissüsteemide riski. See lähenemine eraldab SQL serveri uue põhiversiooni installimisest kõigi uute päringute muudatuste automaatsest lubamisest. Kuna põhiversiooni versiooniuuendused muudavad failivormingut ja need pole pöördumatud, on mõistlik kasutada COMPATIBILITY_LEVEL sätteid, sest see võimaldab kliendil kiiresti alandada, kui versiooniuuenduse käigus leitakse ootamatu plaani jõudlus. Kui klient leiab ootamatu lepingu muudatuse, mis blokeerib rakenduse täienduse, saab klient olukorda kergendada, rakendades vastavat plaani vihjet, kasutades päringute salve eelneva lepingu jõustamiseks või saab olukorda leevendada, kui võtate ühendust Microsofti klienditoega, et anda probleemile lahendus või käigultparandus. Kui kõik probleemid on vähenenud, saab täiendust jätkata. Kliendid peaksid selle võimaluse integreerima oma SQL Server 2016. Järgmises tabelis selgitatakse, kuidas jälituslipp 4199 töötab alates SQL Server 2016.
Säte |
SQL-i ühilduvuse tase |
Jälituslipp 4199 |
Optimeerija käigultparandused enne SQL Server 2016 RTM |
Optimeerija käigultparandused pärast SQL Server 2016 RTM |
---|---|---|---|---|
1. |
120 |
Väljalülitamine |
Erivajadustega |
Erivajadustega |
2. |
120 |
Klõpsake menüü |
Lubatud |
Erivajadustega |
3. |
130 |
Väljalülitamine |
Lubatud ühilduvuse tasemel |
Erivajadustega |
4. |
130 |
Klõpsake menüü |
Lubatud ühilduvuse tasemel |
Lubatud ühilduvuse tasemel |
Märkus. Säte nr 3 soovitatakse klientidele, kes on äsja versiooniks SQL Server 2016. Pärast SQL Server 2016 suurte väljaannete korral kavatseb Microsoft jätkata selle teeninduse mudeli kasutamist optimeerija käigultparanduste jaoks. Vaikimisi või iga Väljalaske korral lubatakse järgmise ühilduvuse tasemel kõik jälituslipp 4199 käigultparandused eelmisest versioonist. See tähendab, et soovitatav olek klientide jaoks pärast üleminekut uusimale ühilduvuse tasemele peab olema jälituslipp 4199 keelatud. Hilisemad käigultparandused kasutaksid jälituslipp 4199, et võimaldada määrata klientidele, kes peavad rakenduses need konkreetsed käigultparandused lubama. Klientidel soovitatakse välja lülitada jälituslipp 4199 pärast seda, kui rakendus on täiendatud uusimale ühilduvuse tasemele, et vältida ootamatute tulevaste muudatuste korral ootamatute muudatuste lubamist rakenduses ootamatult. See, et üleminek uusimale ühilduvuse tasemele ja eemaldamine jälituslipp 4199 endiselt võimaldab kõik parandused, mida töökoormus oli võimendav enne versiooniuuendust, lihtsalt ei ole uusi parandusi.
Märkus Paljud optimeerija käigultparandused on lubatud jaotises jälituslipp 4199, mõned kasutavad muid trace Flags. Jälituslipp 4199 ajalooliselt kaetud trace lipud, mis on laialdaselt kohaldatavad ja tõenäoliselt muutuvad vaikimisi lubatud tulevikus vabastamist. Alternatiivseid jälituslipp kasutatakse kiirparandustes, kus tingimused on väga spetsiifilised vaid mõnele kliendile, kus lahendus võib põhjustada jõudluse regressiooni muud tüüpi rakendustes või kus sisemine funktsionaalsus võib näha muudatusi, enne kui see on valmis kõigi jaoks lubama. Microsoft jätkab toote teenindamiseks vajadusel teiste Traci lippude kasutamist. Märkus Selles artiklis keskendutakse mudelist, mille abil väljastatakse jälituslipp 4199 käigultparandused uusima ühilduvuse tasemele uusima tootega. (Avaldamise ajal on see SQL Server 2016.) Optimeerija käigultparandused võidakse välja anda SQL serveri vanemates versioonides või SQL Server 2016 (120 või varasem). Microsoft hindab iga juhtumit ja otsustab, kas kasutada jälituslipp 4199 või mõnda muud jälituslipp. Kuna kiirparanduse muudatused on lubatud ka siis, kui teisaldatakse hilisema ühilduvuse tasemele, pole ühtegi kindlat lubadust, et ülemineku ajal ei toimuks ühtegi plaani muudatust (ilma jälituslipp 4199). Kliendid peaksid alati katsetama ühilduvuse taset nii, et neid oleks võimalik teha rakenduste jaoks, ja need peaksid kasutama ka leevendamise tehnoloogiaid (nt päringu pood), kui on olemas plaani valikuga seotud jõudluse probleem. Viitamiseks järgmises tabelis on loetletud trace Flags, mida kasutati päringu protsessori käigultparanduste enne jälituslipp 4199 kasutuselevõtt.
Microsofti teabebaasi (Knowledge Base) artikkel |
Jälituslipp |
---|---|
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 2005
Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 6 for SQL Server 2005 hoolduspakett 3. Selle kumulatiivse värskenduspaketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
974648 SQL Server 2005 hoolduspakett 3 koondvärskenduses pakett 6Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2005 Fix väljalaskega. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
960598 Pärast SQL Server 2005 Service Pack 3 väljaandmist väljaantud SQL serveri 2005 järgudMicrosoft SQL serveri 2005 käigultparandused luuakse teatud SQL serveri hoolduspakettide jaoks. SQL Server 2005 hoolduspaketi 3 installimisel peate rakendama SQL serveri 2005 hoolduspaketi 3 käigultparanduse. Vaikimisi sisaldub SQL serveri hoolduspaketis pakutav käigultparandus järgmises SQL serveri hoolduspaketis.
SQL Server 2008
Selle probleemi parandus anti esmakordselt välja kumulatiivne Update 7. Lisateavet selle kumulatiivse värskenduspaketi SQL Server 2008 hankimiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
973601 SQL serveri 2008 koondvärskenduses pakett 7Märkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 Fix väljalaskega. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
956909 Pärast SQL Server 2008 väljaandmist väljaantud SQL serveri 2008 järgud
SQL serveri 2008 hoolduspakett SP1
Selle probleemi lahendus anti esmakordselt välja kumulatiivne Update 7 for SQL Server 2008 hoolduspakett Service Pack 1. Selle kumulatiivse värskenduspaketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
979065 Koondvärskenduse pakett 7 SQL Server 2008 hoolduspaketi 1 jaoksMärkus. Kuna järgud on kumulatiivsed, sisaldab iga uus parandus kõiki Kiirparandusi ja kõiki turvaparandusi, mis kuulusid eelmise SQL serveri 2008 Fix väljalaskega. Soovitame teil kaaluda kõige uuemate paranduste rakendamist, mis sisaldavad seda käigultparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
970365 Pärast SQL Server 2008 hoolduspaketti 1 välja antud SQL serveri 2008 järgudMicrosoft SQL serveri 2008 käigultparandused luuakse teatud SQL serveri hoolduspakettide jaoks. SQL Server 2008 hoolduspaketi 1 installimisel peate rakendama SQL serveri 2008 hoolduspaketi 1 käigultparanduse. Vaikimisi sisaldub SQL serveri hoolduspaketis pakutav käigultparandus järgmises SQL serveri hoolduspaketis.
SQL Server 2008 R2
SQL Server 2008 R2 Väljalaske versioonis eemaldati jälituslipp 4135 tahtmatult-T4199 ' i jälitatud lippude loendist. See on siiski lahendatud SQL Server 2008 R2 kumulatiivses Update 1. Nii et see järk ja SQL Server 2005 ning SQL Server 2008 toetatud versioonid on T4199, piisab sellest, kui soovite lubada selle ja teiste selles artiklis loetletud trace lipud.
SQL Server 2012 ja uuemad versioonid
Jälituslipp 4199 on kaasatud SQL Server 2012 ja uuemate versioonide väljalaske-eelse versiooni.
Jälituslipp 4199 lubamine
Saate lubada jälituslipp 4199 käivitamisel või kasutaja seansil. See jälituslipp on kas globaalse taseme või seansi taseme efekt. Jälituslipp 4199 lubamiseks kasutage funktsiooni DBCC TRACEON või kasutage rakendust T 4199 . Kui kasutatakse DBCC TRACEON\TRACEOFF , ei Loo uus vahemällu talletatud protseduuri kohta uut vahemällu salvestatud plaani. Lepingud võivad olla vahemällu, mis loodi Liputa. Üksikasjalikku teavet selle kohta, kuidas lubada või keelata jälituslipp ning globaalsete ja Session-taseme jälgimise lipud, leiate SQL Server Books Online ' i järgmistest teemadest.
Viited
SQL serveri värskenduste nimede skeemi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
822499 Microsoft SQL serveri tarkvaravärskenduste pakettide uus nimede skeem Tarkvaravärskenduste terminoloogia kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
824684 Microsofti tarkvaravärskenduste kirjeldamiseks kasutatavate standardsete terminite kirjeldus