Կիսվել հիմա ՝
Բառը թաքցնել
3: էական SQL Server Արդյունավետության հաշվիչներ

1. Ներածություն SQL Server Performance Monitor- ը

1.1 Ինչ է SQL Server Արդյունավետության մոնիտոր՞

SQL Server Արդյունավետության մոնիթորինգը ձեր համակարգի աշխատանքի և առողջության հետևման, վերլուծության և կառավարման գործընթաց է։ SQL Server տվյալների բազաներ: Այն ներառում է ձեր տվյալների բազայի համակարգի տարբեր ասպեկտների վերաբերյալ տվյալների հավաքագրում և մեկնաբանում՝ օպտիմալ աշխատանքն ապահովելու, խնդիրները կանխելու և տվյալների բազայի առողջությունը պահպանելու համար:

Արդյունավետության մոնիթորինգը ներառում է հարցումների կատարման ժամանակի, ռեսուրսների օգտագործման, ինդեքսի արդյունավետության, արգելափակումների և փակուղիների, ինչպես նաև տվյալների բազայի աճի միտումների հետևումը: Այս շարունակական վերահսկողությունը օգնում է ադմինիստրատորներին բացահայտել հնարավոր խնդիրները, նախքան դրանք կազդեն օգտատերերի կամ բիզնես գործունեության վրա:

1.2 Արդյունավետության մոնիթորինգի հիմնական առավելությունները

Արդյունավետ SQL Server Արդյունավետության մոնիտորը մի քանի կարևոր առավելություններ ունի.

  • Խնդրի կանխարգելիչ հայտնաբերում. Բացահայտել և լուծել հնարավոր խնդիրները, նախքան դրանք ազդեն օգտատերերի կամ բիզնեսի գործունեության վրա
  • Կատարման օպտիմիզացում. Տվյալների բազայի ընդհանուր աշխատանքը բարելավելու համար նշեք խոչընդոտներն ու անարդյունավետությունները
  • Հզորությունների պլանավորում. Կանխատեսեք ռեսուրսների կարիքները և պլանավորեք ապագա աճը՝ հիմնվելով պատմական տվյալների վրա
  • Համապատասխանություն և անվտանգություն. Ապահովել կարգավորող պահանջների պահպանումը և հայտնաբերել կասկածելի գործունեությունը

1.3 Հաճախակի կատարողականի հետ կապված խնդիրներ

Առանց SQL տվյալների բազայի պատշաճ կատարողականի մոնիթորինգի, կազմակերպությունները բախվում են մի քանի ռիսկերի.

  • Անսպասելի դադար, որը խաթարում է բիզնեսի գործունեությունը
  • Ծրագրի վատ աշխատանքը ազդում է օգտագործողի փորձի վրա
  • Տվյալների կորուստ կամ կոռուպցիա
  • Ռեսուրսների անարդյունավետ օգտագործումը հանգեցնում է ավելորդ ծախսերի
  • Հիասթափված օգտատերեր և եկամտի հնարավոր կորուստ

IDC-ի 2023 թվականի ուսումնասիրության համաձայն, տվյալների բազայի աշխատանքի հետ կապված խնդիրների 65%-ը բխում է վատ մոնիթորինգի կամ օպտիմալացման պրակտիկայից։

2. Windows-ի աշխատանքի մոնիտորի (PerfMon) հասկացողությունը

2.1 Ի՞նչ է Windows-ի աշխատանքի մոնիտորը։

Windows-ի աշխատանքի մոնիթորը (PerfMon) ներկառուցված Windows գործիք է, որը վերահսկում է համակարգի ռեսուրսները և ծրագրերի աշխատանքը։ SQL Server ադմինիստրատորների կողմից, PerfMon-ը անգնահատելի պատկերացում է տալիս ինչպես օպերացիոն համակարգի, այնպես էլ SQL Server չափանիշներ, ինչը կարևոր է դարձնում համապարփակ կատարողականի վերլուծության համար։

Windows-ի աշխատանքի մոնիտոր (PerfMon)

PerfMon-ը չափում է կատարողականի վիճակագրությունը պարբերաբար և պահպանում է այդ վիճակագրությունը ֆայլերում՝ հետագա վերլուծության համար: Տվյալների բազայի ադմինիստրատորները կարող են ընտրել ժամանակային միջակայքը, ֆայլի ձևաչափը և որ վիճակագրությունն է վերահսկելու: Գործիքը չի... SQL Server-specific—համակարգի ադմինիստրատորներն այն օգտագործում են Windows-ը, Exchange-ը, ֆայլային սերվերները և ցանկացած ծրագիր, որը կարող է խոչընդոտների հանդիպել, վերահսկելու համար։

2.2 Գործարկեք Performance Monitor-ը

Կարող եք գործարկել Performance Monitor-ը՝ օգտագործելով մի քանի մեթոդ.

  1. Սեղմել սկիզբ, տիպ օծանելիք որոնման դաշտում սեղմեք «Performand Monitor» որոնման արդյունքում։
    Որոնեք և գործարկեք PerfMon-ը Windows-ի որոնման դաշտից։
  2. մամուլ Windows + R- ը, տիպ օծանելիքեւ սեղմեք Մտնել
    Գործարկեք PerfMon-ը Windows-ի գործարկման պատուհանից։
  3. navigate to Control Panel -> Համակարգ եւ անվտանգություն -> Ադմինիստրատիվ գործիքներ -> Performance Monitor- ը
    Գործարկեք PerfMon-ը Control Panel -> System and Security -> Administrative Tools -> Performance Monitor-ից։

3: էական SQL Server Արդյունավետության հաշվիչներ

3.1 Հիշողության կատարողականության հաշվիչներ

Հիշողության հաշվիչները կարևոր են մոնիթորինգի համար SQL Server կատարողականությունը, քանի որ դրանք ցույց են տալիս, թե արդյոք ձեր տվյալների բազան ունի բավարար հիշողության ռեսուրսներ։

Հասանելի ՄԲայթ

Այս հաշվիչը ցույց է տալիս հատկացման համար անմիջապես հասանելի ֆիզիկական հիշողության քանակը։ Այն պետք է մնա բավականին հաստատուն և իդեալական դեպքում չընկնի 4096 ՄԲ-ից ցածր։ Ցածր արժեքները կարող են ցույց տալ, որ SQL Serverհիշողության առավելագույն կարգավորումը թողնված է լռելյայն կամ ոչ-SQL Server ծրագրերը սպառում են հիշողությունը։

Էջի կյանքի տևողության սպասվող տևողությունը

Էջի կյանքի տևողության ցուցանիշը չափում է, թե որքան ժամանակ (վայրկյաններով) էջը մնում է բուֆերային լողավազանում առանց հղման։ Նորմալ արժեքը 300 վայրկյան կամ ավելի է։ Ավելի ցածր արժեքները ցույց են տալիս հիշողության ծանրաբեռնվածություն և բուֆերի չափազանց մեծ շրջանառություն, ինչը նվազեցնում է քեշի արդյունավետությունը։

Բուֆերային քեշի հարվածի հարաբերակցություն

Այս հաշվիչը ցույց է տալիս տվյալների հարցումների տոկոսը, որոնք պատասխանվել են SQL բուֆերի քեշի (հիշողության) միջոցով՝ սկավառակից կարդալու փոխարեն: Այն սովորաբար համապատասխանում կամ գերազանցում է 99%-ը: Ավելի ցածր արժեքները ենթադրում են, որ SQL Server ավելի շատ հիշողության կարիք ունի կամ դեռ տաքանում է վերագործարկումից հետո։

Հիշողության դրամաշնորհներ սպասվում են

Սա ցույց է տալիս հիշողության մեջ սպասող պրոցեսների քանակը SQL ServerՆորմալ պայմաններում այս արժեքը պետք է մշտապես լինի 0: Ավելի բարձր արժեքները ցույց են տալիս հիշողության անբավարար բաշխում: SQL Server.

Թիրախային սերվերի հիշողությունն ընդդեմ սերվերի ընդհանուր հիշողության

Target Server Memory-ը ցույց է տալիս հիշողության իդեալական քանակը SQL Server ուզում է օգտագործել։ Ընդհանուր սերվերի հիշողությունը ցույց է տալիս, թե ինչ SQL Server ներկայումս օգտագործվում է։ Այս արժեքների միջև հարաբերակցությունը պետք է լինի մոտավորապես 1։ Նշանակալի տարբերությունները կարող են վկայել հիշողության ծանրաբեռնվածության կամ անբավարար հիշողության մասին։

3.2 Պրոցեսորի աշխատանքի հաշվիչներ

CPU հաշվիչները օգնում են բացահայտել պրոցեսորի խցանումները և հասկանալ, թե ինչպես SQL Server օգտագործում է հաշվողական ռեսուրսներ։

Պրոցեսորի ժամանակի տոկոսը

Սա չափում է այն ժամանակի տոկոսը, որը պրոցեսորը ծախսում է ոչ պարապ հոսքերի կատարման վրա: Ակտիվ սերվերների վրա արժեքները կարող են հասնել մինչև 100%, սակայն 70-75%-ից ավելի երկարատև օգտագործումը սովորաբար ցույց է տալիս օգտատերերի կատարողականության հետ կապված խնդիրներ: Բացակայող կամ անբավարար ինդեքսները հաճախ առաջացնում են պրոցեսորի բարձր ծանրաբեռնվածություն:

Արտոնյալ ժամանակի %

Պրոցեսորի ժամանակը բաժանվում է օգտատիրոջ ռեժիմի և արտոնյալ (միջուկի) ռեժիմի մշակման։ Սկավառակի բոլոր մուտքերը և մուտք/ելքերը տեղի են ունենում միջուկի ռեժիմում։ Եթե այս հաշվիչը գերազանցում է 25%-ը, համակարգը, հավանաբար, կատարում է չափազանց շատ մուտք/ելք։ Նորմալ արժեքները տատանվում են 5%-ից մինչև 10%։

Պրոցեսորի հերթի երկարությունը

Այս հաշվիչը ցույց է տալիս CPU ռեսուրսների սպասող թելերը: Արժեքները մշտապես 1-ից բարձր են (բացառությամբ SQL Server պահուստային պատճենի սեղմում) ցույց է տալիս պրոցեսորի ճնշումը: Սա հաճախ նշանակում է, որ այլ ծրագրեր են տեղադրված SQL Server մեքենա, որը խախտում է լավագույն փորձը։

Համատեքստային անջատիչներ/վրկ

Սա չափում է, թե որքան հաճախ է պրոցեսորը անցնում թելերի միջև։ Համատեքստի չափազանց մեծ անցումը կարող է ազդել աշխատանքի արդյունավետության վրա և ցույց է տալիս համակարգի բարձր ծանրաբեռնվածություն։

3.3 Սկավառակի մուտքի/ելքի կատարողականության հաշվիչներ

Սկավառակի հաշվիչները կարևոր են SQL-ի աշխատանքի մոնիթորինգի համար, քանի որ սկավառակի մուտք/ելքը հաճախ դառնում է տվյալների բազայի համակարգերի հիմնական խոչընդոտը։

Սկավառակի ժամանակի տոկոսը

Սա գրանցում է այն ժամանակի տոկոսը, երբ սկավառակը զբաղված է եղել կարդալու/գրելու գործողություններով: 85%-ից բարձր արժեքները մշտապես ցույց են տալիս մուտքի/ելքի խցանում: Քանի որ սկավառակը շատ ավելի դանդաղ է, քան հիշողությունը, այս չափանիշի նվազեցումը բարելավում է արտադրողականությունը:

Սկավառակի միջին վայրկյանը/կարդալը և սկավառակի միջին վայրկյանը/գրելը

Այս հաշվիչները չափում են ընթերցման և գրառման գործողությունների միջին ժամանակը (վայրկյաններով): Եթե միջին արժեքները գերազանցում են 10-20 մվրկ-ը, սկավառակը չափազանց երկար է մշակում տվյալները: Գործարքների գրանցամատյանի սկավառակները պահանջում են հատկապես արագ գրառման արդյունավետություն:

Սկավառակի հերթի երկարությունը

Սա ցույց է տալիս սկավառակի վրա կարդալու/գրելու չկատարված հարցումները: 2-ից (կամ RAID զանգվածների համար սկավառակի համար 2-ից) մշտապես բարձր արժեքները ցույց են տալիս, որ սկավառակը չի կարող համընթաց լինել մուտքի/ելքի հարցումների հետ:

Սկավառակի բայթ/վրկ

Սա վերահսկում է տվյալների փոխանցման արագությունը դեպի սկավառակ և սկավառակից։ Եթե սա գերազանցում է սկավառակի անվանական հզորությունը, տվյալները սկսում են կուտակվել, ինչը ցույց է տալիս սկավառակի հերթի երկարության ավելացումը։

Սկավառակի փոխանցումներ/վրկ

Սա հետևում է սկավառակի վրա կատարված կարդալու/գրելու գործողությունների քանակին։ SQL Server Տվյալների մուտքը սովորաբար պատահական է, ինչը դանդաղ է սկավառակի գլխիկի շարժման պատճառով: Համոզվեք, որ այս արժեքը ցածր է ձեր սկավառակի առավելագույն հզորությունից (սովորաբար 100/վրկ ստանդարտ սկավառակների համար):

3.4 SQL Server Հատուկ հաշվիչներ

3.4.1 Բուֆերի կառավարիչի հաշվիչներ

Buffer Manager հաշվիչների մոնիտոր SQL Serverհիշողության բուֆերի գործողություններ՝

  • Էջի ընթերցումներ/վրկ։ Ֆիզիկական տվյալների բազայի էջերի ընթերցումների կուտակային քանակը
  • Էջի գրառումներ/վայրկյան։ Ֆիզիկական տվյալների բազայի էջերի գրառումների կուտակային քանակը
  • Ծույլը գրում է/վրկ.: Ծույլ գրողի կողմից հիշողությունը ազատելու համար գրված բուֆերների քանակը
  • Հսկիչ կետի էջեր/վայրկյան: Էջերը մաքրվել են ստուգիչ կետի կամ այլ գործողությունների միջոցով, որոնք պահանջում են մաքրել բոլոր կեղտոտ էջերը

3.4.2 SQL վիճակագրության հաշվիչներ

Այս հաշվիչները հնարավորություն են տալիս պատկերացում կազմել SQL Server Հարցման մշակում՝

  • Խմբային հարցումներ/վրկ: Սերվերի կողմից ստացված SQL խմբաքանակային հարցումների քանակը։ Սա ծառայում է որպես սերվերի ակտիվության չափանիշ։
  • SQL կոմպիլյացիաներ/վրկ: SQL կոմպիլյացիաների քանակը։ Պետք է լինի ընդհանուր խմբաքանակային հարցումների 10%-ը կամ պակասը/վայրկյանում։
  • SQL վերակազմավորումներ/վրկ. SQL վերակազմակերպումների քանակը։ Պետք է նաև լինի ընդհանուր խմբաքանակային հարցումների 10%-ը կամ պակասը/վայրկյանում։

3.4.3 Ընդհանուր վիճակագրության հաշվիչներ

  • Օգտատիրոջ կապեր՝ Համակարգին միացված օգտատերերի թիվը։ Օգտագործվում է որպես չափանիշ՝ ժամանակի ընթացքում կապի աճը հետևելու համար։
  • Արգելափակված գործընթացներ՝ Բլոկավորված գործընթացների ընթացիկ քանակը։ Իդեալականում այն ​​պետք է լինի 0։

3.4.4 Հիշողության կառավարիչի հաշվիչներ

  • Հիշողության դրամաշնորհներ, որոնք սպասվում են. Աշխատանքային տարածքի հիշողության տրամադրման սպասող գործընթացների ընդհանուր թիվը։ Իդեալականում պետք է լինի 0։

4. Արդյունավետության մոնիտորի կարգավորում SQL Server(Windows Vista / Server 2008 և ավելի ուշ)

Նախևառաջ, մենք պետք է ստեղծենք կոնտեյներ՝ հաշվիչներն ավելի հեշտ կառավարելու համար։

  • Windows Vista / Server 2008 և ավելի ուշ տարբերակների համար այս բաժնում կարող եք ստեղծել տվյալների հավաքագրողների հավաքածուներ։
  • Windows XP / Server 2003 և ավելի վաղ տարբերակների համար կարող եք ստեղծել հաշվիչ գրանցամատյաններ հաջորդ բաժինը.

4.1 Ի՞նչ են տվյալների հավաքագրողների հավաքածուները։

Տվյալների հավաքագրողների հավաքածուները կազմակերպում են կատարողականության հաշվիչները, իրադարձությունների հետագծման տվյալները և համակարգի կարգավորման տեղեկատվությունը մեկ հավաքածուի մեջ: Դրանք ապահովում են ավելի մեծ ճկունություն, քան պարզ հաշվիչ գրանցամատյանները, և հնարավորություն են տալիս ավտոմատացված, պլանավորված տվյալների հավաքագրում՝ SQL տվյալների բազայի կատարողականության համապարփակ մոնիթորինգի համար:

4.2 Տվյալների հավաքագրողի հավաքածուի ստեղծում

Ստեղծեք տվյալների հավաքագրողի հատուկ հավաքածու՝ մոնիթորինգի համար SQL Server կատարողականի հաշվիչներ՝

  1. Բացել կատարողականության մոնիտորը
  2. Ընդարձակել Տվյալների հավաքագրողների հավաքածուներ
  3. Աջ - կտտացրեք Օգտագործողը սահմանվում է
  4. ընտրել նոր -> Տվյալների հավաքագրման հավաքածու
    Ստեղծեք տվյալների հավաքագրիչի նոր հավաքածու PerfMon-ում
  5. Մուտքագրեք նկարագրական անուն (օրինակ՝ «SQL Server «Արդյունավետության չափանիշներ»)
  6. ընտրել Ստեղծել ձեռքով (Ընդլայնված)
    Սահմանեք նկարագրության անուն տվյալների հավաքագրողի հավաքածուի համար
  7. Սեղմել հաջորդ
  8. Ստուգում Ստեղծել տվյալների գրանցամատյաններ -> Արդյունավետության հաշվիչ
    Նոր տվյալների հավաքագրիչի հավաքածուի ստեղծման օգնականում ընտրեք «Ստեղծել տվյալների գրանցամատյաններ» -> «Արդյունավետության հաշվիչ»։
  9. Սեղմել հաջորդ
  10. Սեղմել Ավելացնել հաշվիչներ ընտրելու համար
  11. Ավելացնել ցանկալի SQL Server և համակարգի հաշվիչներ.
    Ավելացրեք կատարողականության հաշվիչներ նոր տվյալների հավաքագրիչի հավաքածուին։
  12. հավաքածու Նմուշի միջակայք
    • Պարբերական մոնիթորինգի համար օգտագործեք 1 րոպե (60 վայրկյան)
    • Ակտիվ խնդիրների լուծման համար օգտագործեք 15-30 վայրկյան
    • Խուսափեք բարձր հաճախականության ձայնագրություններ երկարատև իրականացնելուց, քանի որ դրանք կարող են ազդել արդյունավետության վրա և առաջացնել չափազանց շատ տվյալներ։

    Սահմանեք նմուշի միջակայքը նոր տվյալների հավաքագրողի հավաքածուի օգնականում։

  13. Սեղմել հաջորդ
  14. Ընտրեք տեղանքը՝ գրանցամատյանները պահպանելու համար
    Սահմանեք կատարողականի տվյալները նոր տվյալների հավաքագրողի հավաքածուի օգնականում պահպանելու վայրը։
  15. Սեղմել Ավարտ, կստեղծվի տվյալների հավաքագրողների նոր հավաքածու։
  16. Ըստ լռելյայնի, նոր տվյալների հավաքագրողի հավաքածուն կլինի ՈՉ կարող է ավտոմատ կերպով մեկնարկել։ Դուք պետք է այն գտնեք ձախ վահանակում՝ ներքևում Performance -> Տվյալների հավաքագրողների հավաքածուներ -> Օգտագործողը սահմանվում է -> Ձեր տվյալների հավաքագրողը, սեղմեք աջ կոճակը և ընտրեք սկիզբ
    Սկսեք նոր տվյալների հավաքագրիչի հավաքածու PerfMon-ում։

4.3 Ավելացվող ստեղների հաշվիչներ

  • Հիշողություն -> Հասանելի ՄԲ
  • Ֆիզիկական սկավառակ -> Միջին սկավառակի վայրկյան/կարդացում (բոլոր օրինակները, բացառությամբ _Total)
  • Ֆիզիկական սկավառակ -> Միջին սկավառակի վայրկյան/գրառում (բոլոր օրինակները, բացառությամբ _Total-ի)
  • Ֆիզիկական սկավառակ -> Սկավառակի ընթերցումներ/վրկ (բոլոր օրինակները, բացառությամբ _Total-ի)
  • Ֆիզիկական սկավառակ -> Սկավառակի գրառումներ/վրկ (բոլոր օրինակները, բացառությամբ _Total-ի)
  • Պրոցեսոր -> Պրոցեսորի ժամանակի % (բոլոր օրինակները, բացառությամբ _Total-ի)
  • SQLServer: Ընդհանուր վիճակագրություն -> Օգտատիրոջ կապեր
  • SQLServer: Հիշողության կառավարիչ -> Հիշողության տրամադրման ժամկետը լրացված է
  • SQLServer: SQL վիճակագրություն -> Խմբային հարցումներ/վրկ
  • SQLServer: SQL վիճակագրություն -> SQL կոմպիլյացիաներ/վրկ
  • SQLServer: SQL վիճակագրություն -> SQL վերակազմավորումներ/վրկ
  • Համակարգ -> Պրոցեսորի հերթի երկարությունը

4.4 Կանգառի պայմանների սահմանում

Կարգավորեք կանգառի պայմանները՝ տվյալների անսահմանափակ աճը կանխելու համար.

  1. Տվյալների հավաքագրիչի հավաքածուն ստեղծելուց հետո սեղմեք դրա վրա աջ կոճակով և ընտրեք Հատկություններ
  2. Սեղմեք է Կանգնեցման պայման ականջակալ
  3. Թույլատրել Ընդհանուր տևողությունը
  4. Սահմանել տևողությունը 1 օր (24 ժամ)
  5. Սեղմել OK է փրկել

Սահմանեք տվյալների հավաքագրիչի հավաքածուի կանգառի պայմանը

Սա ապահովում է, որ գրանցամատյանը չափազանց չմեծանա և ավտոմատ կերպով վերագործարկվի, եթե պլանավորվի։

4.5 Տվյալների հավաքագրման ժամանակացույցի կազմում

Ավտոմատացրեք տվյալների հավաքագրումը՝ հետևողական մոնիթորինգ ապահովելու համար.

  1. Սեղմեք աջ կոճակով ձեր տվյալների հավաքագրողի հավաքածուի վրա և ընտրեք Հատկություններ
  2. Սեղմեք է Գույքացուցակ ականջակալ
  3. Սեղմել Ավելացնել նոր ժամանակացույց ստեղծելու համար
  4. Կարգավորեք մեկնարկի ամսաթիվը և ժամը
  5. Սահմանել կրկնության ձևը (օրինակ՝ օրական)
  6. Սեղմել OK ժամանակացույցը պահպանելու համար

Սահմանեք տվյալների հավաքագրողի հավաքածուի ժամանակացույցը

Ավտոմատ մեկնարկի համար կարգավորեք տվյալների հավաքագրիչի հավաքածուն այնպես, որ այն մեկնարկի սերվերի բեռնավորման ժամանակ՝ Windows Task Scheduler-ում ստեղծելով մեկնարկի ակտիվացուցիչ։

5. Արդյունավետության մոնիտորի կարգավորում SQL Server(Windows XP / Server 2003 և ավելի վաղ տարբերակներ)

Windows XP / Server 2003 և ավելի վաղ տարբերակների համար կարող եք ստեղծել հաշվիչ գրանցամատյաններ, որոնք թույլ են տալիս ընտրել կատարողականության հաշվիչների մի շարք և պարբերաբար գրանցել դրանք ֆայլում:

5.1 Հաշվիչ գրանցամատյանների ստեղծում

Հետևեք այս քայլերին՝ նոր հաշվիչի գրանցամատյան ստեղծելու համար.

  1. Բացել կատարողականության մոնիտորը
  2. Ընդարձակել Արդյունավետության գրանցամատյաններ և ծանուցումներ ձախ վահանակում
  3. Աջ - կտտացրեք Հաշվիչ գերաններ
  4. ընտրել Նոր գրանցամատյանի կարգավորումներ
  5. Անվանեք գրանցամատյանը ձեր տվյալների բազայի սերվերի անունով (օրինակ՝ «ProductionSQL01»):
  6. Սեղմել OK կարգավորումը սկսելու համար

Յուրաքանչյուր սերվերի համար առանձին հաշվիչ գրանցամատյաններ ստեղծելը թույլ է տալիս ստուգել առանձին սերվերների աշխատանքը՝ առանց բոլոր սերվերների համար տվյալներ միաժամանակ հավաքելու։

5.2 Արդյունավետության հաշվիչների ավելացում

Հաշվիչների գրանցամատյան ստեղծելուց հետո ավելացրեք այն կոնկրետ կատարողականության հաշվիչները, որոնք ցանկանում եք վերահսկել։

  1. Սեղմեք է Հաշվիչների ավելացում կոճակ
  2. Փոխեք համակարգչի անունը՝ այն ձեր հասցեին ուղղորդելու համար SQL Server օրինակ
  3. մամուլ Tab բեռնել հասանելի կատարողականության օբյեկտները
  4. Ընտրեք կատարողականի օբյեկտը ցանկից (օրինակ՝ Հիշողություն)
  5. Ընտրեք որոշակի հաշվիչներ ցանկը
  6. Ընտրեք օրինակներ, եթե կիրառելի է (օրինակ՝ առանձին պրոցեսորներ կամ սկավառակներ):
  7. Սեղմել Ավելացնել հաշվիչը ներառելու համար
  8. Կրկնել բոլոր ցանկալի հաշվիչների համար
  9. Սեղմել փակել երբ ավարտվի

5.3 Նմուշային ինտերվալների կարգավորում

Նմուշառման միջակայքը որոշում է, թե որքան հաճախ է Performance Monitor-ը հավաքում տվյալներ: Կարգավորեք համապատասխան միջակայքերը՝ հիմնվելով ձեր մոնիթորինգի կարիքների վրա.

  1. Հաշվիչի գրանցամատյանի հատկություններում գտեք Նմուշային տվյալներ ամեն
  2. Սահմանեք միջակայքը (նախնականը 15 վայրկյան է)
  3. Հիմնական մոնիթորինգի համար օգտագործեք 1 րոպեանոց ինտերվալներ ամենօրյա հավաքման համար
  4. Խնդիրների լուծման համար կարճատև ակնթարթների համար օգտագործեք 15-30 վայրկյան ընդմիջումներ
  5. Սեղմել OK կիրառել

Հիշե՛ք, որ ավելի փոքր ժամանակահատվածները ստեղծում են ավելի շատ տվյալներ, որոնք կարող են ավելի դժվար լինել արտապատկերել և վերլուծել: Ավելի մեծ ժամանակահատվածները կարող են բաց թողնել կարևոր թռիչքները: Հավասարակշռեք տվյալների մանրամասնությունը պահեստավորման և վերլուծության պահանջների հետ:

5.4 Գրանցամատյանների ֆայլերի կարգավորում

Գրանցամատյանի ֆայլի ճիշտ կարգավորումը ապահովում է տվյալների արդյունավետ և մատչելի պահպանումը.

  1. Սեղմեք է Մուտք Ֆայլեր Tab-ը counter log-ի հատկություններում
  2. Փոխել գրանցամատյանի ֆայլի տեսակը Տեքստային ֆայլ (ստորակետերով բաժանված) Excel-ում հեշտ ներմուծման համար
  3. Սեղմել Համաձեւել
  4. Սահմանեք ֆայլի ուղին դեպի նվիրված տեղ (օրինակ՝ համօգտագործվող PerformanceLogs պանակ)
  5. Սեղմել OK հաստատելու համար

Օգտագործեք ցանցին հասանելի համօգտագործման տարածք՝ գրանցամատյանի պահպանման համար, որպեսզի կարողանաք հեռակա կերպով մուտք գործել ֆայլեր և կիսվել դրանցով այլ օգտատերերի հետ։

5.5 Հավատարմագրերի կարգավորում

Կարգավորեք համապատասխան մուտքի տվյալները, որպեսզի Performance Monitor-ը կարողանա մուտք գործել հեռակա SQL Server դեպքեր՝

  1. Հաշվիչի գրանցամատյանի հատկություններում գտեք Գործարկել որպես
  2. Մուտքագրեք ձեր տիրույթի օգտատիրոջ անունը հետևյալ ձևաչափով. ԴՈՄԵՆՏ\օգտատիրոջ անուն
  3. Սեղմել Սահմանել գաղտնաբառը
  4. Մուտքագրեք և հաստատեք ձեր գաղտնաբառը
  5. Սեղմել OK է փրկել

Սա թույլ է տալիս PerfMon ծառայությանը հավաքել վիճակագրություն՝ օգտագործելով ձեր տիրույթի թույլտվությունները, այլ ոչ թե իր սեփական մուտքի տվյալները։

6. Արդյունավետության մոնիտորի տվյալների վերլուծություն

6.1 Գրանցամատյանների ֆայլերի դիտումը Performance Monitor-ում

Performance Monitor-ը կարող է ցուցադրել պատմական տվյալները պահպանված գրանցամատյանների ֆայլերից՝

  1. Բացել կատարողականության մոնիտորը
  2. Ձախ վահանակում սեղմեք Մոնիտորինգի գործիքներ -> Performance Monitor- ը.
  3. Գրաֆիկի տարածքում աջ սեղմեք ցանկացած տեղ
  4. ընտրել Հատկություններ
    Բացեք հատկությունները PerfMon-ում՝ գրաֆիկի տարածքում ցանկացած տեղ աջ սեղմելով։
  5. Սեղմեք է Աղբյուր ականջակալ
  6. ընտրել Մուտք ֆայլեր ռադիո կոճակ
  7. Սեղմել Ավելացնել
  8. Անցեք ձեր գրանցամատյանի ֆայլին (.blg կամ .csv)
  9. Ընտրեք ֆայլը և սեղմեք բաց
    Սահմանեք գրանցամատյանի ֆայլը որպես PerfMon-ում գրաֆիկայի աղբյուր։
  10. Օգտագործում Ժամկետը սահիկ՝ վերլուծելու համար անհրաժեշտ ժամանակահատվածը ընտրելու համար
  11. Սեղմել OK Հատկությունների երկխոսության պատուհանը փակելու համար
  12. Սեղմեք կանաչ գումարած նշանի վրա՝ գրանցամատյանի ֆայլից հաշվիչներ ավելացնելու համար
    Սեղմեք կանաչ գումարած նշանի վրա՝ PerfMon-ում գրանցամատյանի ֆայլից հաշվիչներ ավելացնելու համար։
  13. Ընտրեք ցուցադրելու համար ցանկալի հաշվիչները
    PerfMon-ում գրաֆիկին ավելացրեք ցանկալի հաշվիչները։
  14. Սեղմել OK

Գրաֆիկը այժմ կցուցադրի պատմական տվյալները գրանցամատյանի ֆայլից: Օգտագործեք «Ժամանակային միջակայք» սահիկը «Հատկություններ» բաժնում՝ մանրամասն վերլուծության համար որոշակի ժամանակահատվածներ նեղացնելու համար:

6.2 Տվյալների արտահանում Excel ֆայլ

Excel-ը հզոր վերլուծական հնարավորություններ է տրամադրում կատարողականի հաշվիչի տվյալների համար.

  1. Բացեք Performance Monitor-ը՝ բեռնված գրանցամատյանի ֆայլով
  2. Գրաֆիկի տարածքում աջ սեղմեք ցանկացած տեղ
  3. ընտրել Պահպանել տվյալները որպես
  4. Ընտրեք ֆայլի գտնվելու վայրը
  5. ընտրել Տեքստային ֆայլ (ստորակետերով բաժանված) (.csv) բացվող ցանկից
  6. Սեղմել Փրկել
  7. Բացեք CSV ֆայլը Excel-ում

Արտահանեք տվյալները PerfMon ֆայլում։

Ձևաչափեք արտահանված տվյալները՝ ավելի լավ վերլուծության համար։

  1. Ջնջել կիսադատարկ 2-րդ տողը և մաքրել A1 բջիջը
  2. Ձևաչափեք A սյունակը որպես ամսաթիվ/ժամ
  3. Ձևաչափեք թվային սյուները զրո տասնորդականներով և հազարավորների բաժանարարով
  4. Գտեք և փոխարինեք սերվերի անունները վերնագրերում (օրինակ՝ «\\ՍԵՐՎԵՐԱՆՈՒՆԸ» փոխարինեք դատարկով)
  5. Մաքրեք օբյեկտների անունները վերնագրերում (օրինակ՝ «Հիշողություն», «Ֆիզիկական սկավառակ», «Պրոցեսոր»)
  6. Ավելի լավ տեսանելիության համար կրճատեք վերնագրի տառատեսակի չափը մինչև 8 կետ

6.3 Հաշվիչների արժեքների մեկնաբանություն

6.3.1 Հիշողության հաշվիչի վերլուծություն

Հիշողության հաշվիչները վերլուծելիս ուշադրություն դարձրեք հետևյալ ցուցանիշներին.

  • Հասանելի ՄԲայթեր՝ Պետք է մշտապես մնա 4096 ՄԲ-ից բարձր
  • Էջի կյանքի տևողության սպասվող տևողությունը՝ 300 վայրկյանից բարձր արժեքները վկայում են առողջ հիշողության մասին։ Ավելի ցածր արժեքները վկայում են հիշողության ճնշման մասին։
  • Բուֆերային քեշի հարվածի հարաբերակցություն՝ Պետք է համապատասխանի կամ գերազանցի 99%-ը։ Ավելի ցածր արժեքները ցույց են տալիս սկավառակի վրա չափազանց շատ ընթերցումներ։
  • Հիշողության դրամաշնորհներ, որոնք սպասվում են. Պետք է միշտ լինի 0: Ցանկացած դրական արժեք ցույց է տալիս հիշողության պակաս:

6.3.2 CPU հաշվիչի վերլուծություն

CPU-ի աշխատանքի ցուցանիշները ներառում են.

  • Պրոցեսորի ժամանակի տոկոսը՝ 75%-ից ավելի երկարատև օգտագործումը վկայում է աշխատանքի հետ կապված խնդիրների մասին: Մինչև 100% կտրուկ աճը նորմալ է, բայց չպետք է շարունակվի:
  • Պրոցեսորի հերթի երկարությունը՝ 1-ից բարձր արժեքները ցույց են տալիս պրոցեսորի ծանրաբեռնվածությունը։ Ստուգեք առաջադրանքների կառավարիչը՝ պարզելու համար, թե որ գործընթացներն են սպառում պրոցեսորը։
  • Արտոնյալ ժամանակի տոկոսը՝ Պետք է մնա 5-10% սահմաններում։ 25%-ից բարձր արժեքները ենթադրում են չափազանց շատ մուտք/ելք գործողություններ։

6.3.3 Սկավառակի հաշվիչի վերլուծություն

Սկավառակի աշխատանքի շեմերը՝

  • Միջին սկավառակի վայրկյան/կարդալ և գրել՝ Պետք է մնա 10-20 մվ-ից ցածր։ Ավելի բարձր արժեքները ցույց են տալիս դանդաղ սկավառակի ենթահամակարգեր։
  • Սկավառակի հերթի երկարությունը՝ 2-ից (կամ RAID-ում յուրաքանչյուր սկավառակի համար 2-ից) մշտապես բարձր արժեքները վկայում են մուտքի/ելքի խցանումների մասին։
  • Սկավառակի ժամանակի տոկոսը՝ 85%-ից բարձր կայուն արժեքները վկայում են սկավառակի հագեցվածության մասին։

6.4 Բանաձևերի և վիճակագրության կիրառումը

Ավելացրեք վիճակագրական բանաձևեր Excel-ում՝ արագ վերլուծության համար։

  1. Տեղադրեք 7 դատարկ տող ձեր աղյուսակի վերևում
  2. Ավելացրեք պիտակներ A սյունակում՝ Միջին, Միջնարժեք, Նվազագույն, Մաքս, Ստանդարտ շեղում
  3. B2 բջջում մուտքագրեք՝ =AVERAGE(B9:B100) (հարմարեցրեք B100-ը ձեր վերջին տվյալների տողին)
  4. B3 բջջում մուտքագրեք՝ =MEDIAN(B9:B100)
  5. B4 բջջում մուտքագրեք՝ =MIN(B9:B100)
  6. B5 բջջում մուտքագրեք՝ =MAX(B9:B100)
  7. B6 բջջում մուտքագրեք՝ =STDEV(B9:B100)
  8. Պատճենել բանաձևերը բոլոր հաշվիչի սյուներում
  9. Ընտրեք B9 բջիջը և սեղմեք Alt+W+F+Enter՝ վահանակները սառեցնելու համար

Այս վիճակագրությունը օգնում է բացահայտել յուրաքանչյուր հաշվիչի միտումները, արտառոց արժեքները և նորմալ աշխատանքային միջակայքերը։

7. Գրանցամատյանների արդյունավետության վերլուծության (PAL) գործիք

7.1 PAL-ի ներածություն

Գրանցամատյանների կատարողականության վերլուծությունը (PAL) Քլինթ Հաֆմանի կողմից մշակված անվճար գործիք է, որը վերլուծում է կատարողականության մոնիտորի գրանցամատյանները և ստեղծում HTML հաշվետվություններ՝ օգտագործելով շեմային վերլուծության գործիք: PAL-ը համեմատում է ձեր կատարողականության տվյալները հայտնի շեմերի հետ և տրամադրում է մանրամասն առաջարկություններ: SQL Server կատարողականի օպտիմալացում։

Ներբեռնեք PAL-ը GitHub պահոցից՝ https://github.com/clinthuffman/PAL Արտաքին ՈՒղեցույց

7.2 PAL-ի կարգավորում

Տեղադրեք PAL-ը հետևյալ քայլերով.

  1. Ներբեռնեք PAL կարգավորման ֆայլը GitHub-ից
  2. Գործարկեք տեղադրիչը
  3. Սեղմել հաջորդ ողջույնի էկրանին
  4. Վերանայեք և ընդունեք տեղադրման գրացուցակը
  5. Սեղմել հաջորդ շարունակել
  6. Սեղմել Տեղադրեք տեղադրումը սկսելու համար
  7. Սպասեք սպասարկման ավարտին
  8. Սեղմել Ավարտ

7.3 Գրանցամատյանների մշակում PAL-ով

Վերլուծեք ձեր Performance Monitor-ի գրանցամատյանները՝ օգտագործելով PAL:

  1. Գործարկեք PAL-ը «Սկիզբ» ընտրացանկից կամ տեղադրման գրացուցակից
  2. Սեղմեք է Հաշվիչ գրանցամատյան ականջակալ
  3. Սեղմել Թերթել ձեր .blg ֆայլը ընտրելու համար
  4. Անցեք ձեր Performance Monitor-ի գրանցամատյանի ֆայլին
  5. Սեղմել բաց
  6. Սեղմեք է Շեմային ֆայլ ականջակալ
  7. Ընտրեք շեմի ֆայլը ցանկից (օրինակ՝ «SQL Server 2016 »)
  8. Սեղմեք է հարցեր ականջակալ
  9. Պատասխանեք ձեր համակարգի կարգավորումների վերաբերյալ հարցերին
  10. Նշեք, թե արդյոք ձեր SQL Server OLTP է, թե՞ տվյալների պահեստ
  11. Մուտքագրեք ընդհանուր հասանելի RAM-ը
  12. Սեղմեք է Արդյունքների ընտրանքներ ականջակալ
  13. Ընտրեք HTML հաշվետվության համար ելքային գրացուցակ
  14. Ստուգում HTML ելքային ձևաչափ
  15. Սեղմեք է Կատարել ականջակալ
  16. Վերանայեք ձեր ընտրությունները
  17. Ստուգում Սկսեք կատարումը հիմա
  18. Սեղմել Ավարտ

7.4 PAL հաշվետվությունների վերլուծություն

PAL-ը վերլուծությունն ավարտելուց հետո ստեղծում է HTML հաշվետվություն, որը պարունակում է.

  • Կատարողականի հետ կապված խնդիրների գործադիր ամփոփում
  • Մանրամասն հակադարձ վերլուծություն՝ գրաֆիկներով
  • Շեմային խախտումները նշված են գույնով
  • Հատուկ առաջարկություններ յուրաքանչյուր խնդրի համար
  • Պատմական միտումներ և օրինաչափություններ

Հաշվետվությունը գունային կոդավորում է օգտագործում՝ լրջությունը նշելու համար. կարմիր՝ կարևոր խնդիրների, դեղին՝ նախազգուշացումների և կանաչ՝ առողջ չափանիշների համար: Վերանայեք յուրաքանչյուր բաժինը՝ կատարողականի խոչընդոտները հասկանալու և PAL-ի օպտիմալացման առաջարկություններին հետևելու համար:

8. Այլընտրանք SQL Server Մոնիտորինգի գործիքներ

8.1 Ներկառուցված SQL Server Գործիքներ

8.1.1 SQL Server Գործունեության մոնիտոր

SQL Server Գործունեության մոնիտոր ցուցադրում է իրական ժամանակի տեղեկատվություն այն մասին, թե SQL Server Գործընթացներ և կատարողականություն.

  1. բաց SQL Server Management Studio (SSMS) և միացեք ձեր սերվերի օրինակին
  2. Object Explorer-ում աջ սեղմեք սերվերի անվան վրա
  3. ընտրել Գործունեության մոնիտոր
    Գործարկել Ակտիվության մոնիտորը SQL Server Կառավարման ստուդիա.

Ակտիվության մոնիթորը ցույց է տալիս գործընթացները, ռեսուրսների սպասման ժամանակը, տվյալների ֆայլերի մուտքագրումը/ելքը և վերջին թանկարժեք հարցումները: Այն արագ պատկերացում է տալիս տվյալների բազայի ընթացիկ գործունեության մասին, բայց չի պահպանում պատմական տվյալները:

Ակտիվության մոնիտոր SQL Server

8.1.2 SQL Server Կատարման վահանակ

SQL Server Management Studio-ն ներառում է ներկառուցված կատարողականի հաշվետվություններ՝

  1. In SQL Server Management Studio (SSMS), սեղմեք աջ կոճակը SQL Server օրինակ Object Explorer-ում
  2. ընտրել Զեկույցներ -> Ստանդարտ հաշվետվություններ
  3. Ընտրեք առկա հաշվետվություններից, ինչպիսիք են՝ Կատարման վահանակ
    Բացեք Արդյունավետության վահանակը SQL Server Կառավարման ստուդիա.

Արդյունավետության վահանակը տեսողական պատկերացում է տալիս SQL Server օրինակի կատարողականությունը, ներառյալ համակարգի CPU-ի ծանրաբեռնվածությունը, ընթացիկ սպասման հարցումները և կատարողականության չափանիշները: Մուտք գործեք դրան «Ստանդարտ հաշվետվություններ» ցանկի միջոցով:

Արդյունավետության վահանակ SQL Server Կառավարման ստուդիա

8.1.3 SQL Server Պրոֆիլավոր

SQL Server Պրոֆիլավոր գրավում և վերլուծում է SQL Server իրադարձություններ, ինչպիսիք են հարցման կատարումը, գործարքային գործողությունները և մուտք գործելու գործողությունները։

Սկսել SQL Server Պրոֆիլավորող:

  1. In SQL Server Կառավարման ստուդիա, սեղմեք Գործիքներ -> SQL Server Պրոֆիլավոր
    սկիզբ SQL Server Պրոֆիլեր SQL Server Կառավարման ստուդիա.

Profiler-ը ստեղծում է զգալի արտադրողականության ծախսեր, ուստի օգտագործեք այն խելամտորեն և նախընտրելի է ոչ գագաթնակետային ժամերին: Շատ դեպքերում, Extended Events-ը ապահովում է ավելի լավ արտադրողականություն՝ ավելի քիչ ազդեցությամբ:

SQL Server Պրոֆիլավոր

8.1.4 Երկարաձգված միջոցառումներ

Ընդլայնված իրադարձություններ թեթև կատարողականի մոնիթորինգի համակարգ է, որը ներկառուցված է SQL ServerԱյն փոխարինում է SQL Server Պրոֆայլեր՝ ավելի լավ կատարողականությամբ և ավելի ցածր վերադիր ծախսերով։

Հիմնական հատկանիշները ներառում են `

  • Հատուկ իրադարձությունների մանրակրկիտ մոնիթորինգ
  • Նվազագույն ազդեցություն կատարողականի վրա
  • Կարգավորելի միջոցառումների նիստեր
  • Ինտեգրացիա SSMS-ի և այլ գործիքների հետ
  • Աջակցություն բարդ ֆիլտրացման և ագրեգացման համար

Ստեղծեք ընդլայնված միջոցառումների նիստեր SSMS-ի միջոցով.

  1. In Օբյեկտների հետազոտող, ընդարձակեք ձեր սերվերը և գնացեք Կառավարում -> Ընդլայնված միջոցառումներ -> Նիստեր
  2. Անմիջապես սեղմիր վրա Sessions եւ ընտրեք Նոր սեսիայի օգնական
    Սկսեք ընդլայնված միջոցառումների նոր նիստ SQL Server Կառավարման ստուդիա.
  3. Հետևեք հրահանգներին՝ նոր նստաշրջան սկսելու համար։

8.1.5 Դինամիկ կառավարման տեսարաններ (DMV)

DMV-ները տրամադրում են սերվերի վիճակի մանրամասն տեղեկատվություն՝ առողջությունը վերահսկելու, խնդիրները ախտորոշելու և աշխատանքը կարգավորելու համար: Հիմնական DMV-ները ներառում են՝

  • sys.dm_exec_query_stats: Հարցման կատարողականի վիճակագրություն
  • sys.dm_os_wait_stats: Սպասման տեսակները, որոնք ազդում են սերվերի աշխատանքի վրա
  • sys.dm_os_performance_counters: SQL Server կատարողականի հաշվիչի տվյալներ
  • sys.dm_exec_requests: Ներկայումս կատարվում են հարցումներ
  • sys.dm_exec_sessions: Ակտիվ օգտատիրոջ սեսիաներ

Հարցումներ կատարեք այս դիտումներին T-SQL-ի միջոցով՝ իրական ժամանակի կատարողականի տվյալներին և պատմական չափանիշներին մուտք գործելու համար։

Հիմնական օգտագործումը

-- See all active connections
SELECT * FROM sys.dm_exec_connections;

-- View current sessions
SELECT * FROM sys.dm_exec_sessions;

-- Check database file stats
SELECT * FROM sys.dm_io_virtual_file_stats(NULL, NULL);

8.2 Երրորդ կողմի մոնիթորինգի լուծումներ

Redgate SQL Monitor

Redgate SQL Monitor-ը մասնագիտանում է մոնիթորինգի մեջ SQL Server և Azure SQL տվյալների բազայի միջավայրեր: Այն ապահովում է ամբողջ տարածքի մոնիթորինգ, հարմարեցվող ահազանգեր և վահանակներ, մանրամասն հաշվետվությունների հնարավորություններ և ինտեգրում Redgate-ի այլ գործիքների հետ:

Redgate SQL Server Մոնիտոր

SolarWinds SQL Server Մոնիտորինգի գործիք

The SolarWinds SQL Server Մոնիտորինգի գործիքը, որը նաև հայտնի է որպես SQL Sentry, նախատեսված է ախտորոշելու, լուծելու և կանխելու լուրջ կատարողական խնդիրները SQL Server.

SolarWinds SQL Server Մոնիտորինգի գործիք

IDERA-ի SQL Server Կատարման մոնիտորինգի գործիք

IDERA SQL ախտորոշիչ մենեջերը հզոր ծրագիր է SQL Server Արդյունավետության մոնիթորինգի գործիք, որը նախատեսված է ակտիվ մոնիթորինգի, ախտորոշման և կարգավորմանը նպաստելու համար։

IDERA-ի SQL Server Կատարման մոնիտորինգի գործիք

Ծրագրերի մենեջերի SQL մոնիտորինգ

Ծրագրերի կառավարիչը առաջարկում է Microsoft-ը SQL Server Մոնիտորինգի գործիք, որն ապահովում է օգտակար ՏՏ լուծումներ: Այն նախագծված է SQL տվյալների բազաների աշխատանքը վերահսկելու համար՝ միաժամանակ բացահայտելով վրիպակներ և լուծել այն խնդիրները, որոնք կարող են հանգեցնել կազմակերպության գործունեության դադարեցմանը:

Ծրագրերի մենեջերի SQL մոնիտորինգ

8.3 Բաց կոդով մոնիթորինգի գործիքներ

DBA Dash

DBA Dash-ը անվճար, բաց կոդով մոնիթորինգի գործիք է, որը տրամադրում է պատկերացումներ SQL Server առողջություն, կատարողականություն և ակտիվություն: Այն հատկապես օգտակար է փոքր և միջին չափի միջավայրերի համար և ներառում է ամենօրյա տվյալների բազայի ստուգումներ, կատարողականության մոնիթորինգ և կարգավորման հետևում:

SQLWATCH

SQLWATCH-ը առաջարկում է ապակենտրոնացված, գրեթե իրական ժամանակում SQL Server 5 վայրկյանի մանրամասնությամբ մոնիթորինգ՝ աշխատանքային բեռնվածության կտրուկ աճը գրանցելու համար: Այն աջակցում է Grafana-ին՝ իրական ժամանակի վահանակների համար, և Power BI-ին՝ խորը վերլուծության համար: Գործիքն ապահովում է կարգավորման լայն հնարավորություններ, զրոյական սպասարկման պահանջներ և անսահմանափակ մասշտաբայնություն:

Դիտորդ

Stack Exchange-ի կողմից մշակված Opserver-ը վերահսկում է բազմաթիվ համակարգեր, այդ թվում՝ SQL Server, Redis և Elasticsearch: Այն ապահովում է «բոլոր սերվերների» դիտում ձեր ենթակառուցվածքի CPU-ի, հիշողության, ցանցի և սարքավորումների վիճակագրության համար:

sp_Ո՞վ է ակտիվ

sp_WhoIsActive-ը Ադամ Մաչանիչի կողմից ստեղծված համապարփակ ակտիվության մոնիթորինգի պահեստավորված ընթացակարգ է: Այն աշխատում է բոլորի հետ: SQL Server տարբերակները 2005 թվականից մինչև ներկայիս թողարկումները և լայնորեն օգտագործվում է SQL Server DBA-ներ իրական ժամանակի գործունեության մոնիթորինգի համար։

sp_WhoIsActive-ն օգտագործելու համար ներբեռնեք այն http://whoisactive.com/ կայքից, տեղադրեք այն ձեր տվյալների բազայում և կատարեք հետևյալը՝

EXEC sp_WhoIsActive

Գործընթացը ցույց է տալիս ներկայումս կատարվող հարցումները, սպասման տեղեկատվությունը, արգելափակման մանրամասները և ռեսուրսների սպառումը։

9. Լավագույն փորձը SQL Server Performance Monitor- ը

9.1 Արդյունավետության բազային ցուցանիշների սահմանում

Արդյունավետության բազային ցուցանիշները սահմանում են ձեր համար նորմալ շահագործման պարամետրերը SQL Server միջավայր։ Առանց բազային ցուցանիշների, դուք չեք կարող որոշել, թե արդյոք ներկայիս չափանիշները ցույց են տալիս խնդիրներ, թե ներկայացնում են բնորոշ վարքագիծ։

Ստեղծեք բազային գծեր՝ հետևյալ կերպ.

  1. Առնվազն մեկ շաբաթվա ընթացքում բնականոն գործունեության ընթացքում կատարողականի տվյալների հավաքագրում
  2. Չափանիշների գրանցում ինչպես գագաթնակետային, այնպես էլ ոչ գագաթնակետային ժամերին
  3. Հիմնական հաշվիչների բնորոշ արժեքների փաստաթղթավորում
  4. Սեզոնային տատանումների գրանցում, եթե կիրառելի է
  5. Հիմնական տվյալների պահպանում՝ ապագա չափանիշների հետ համեմատելու համար

Թարմացրեք բազային գծերը եռամսյակը մեկ կամ ենթակառուցվածքային էական փոփոխություններից, հավելվածների թարմացումներից կամ տվյալների բազայի փոփոխություններից հետո։

9.2 Համապատասխան ահազանգի շեմերի սահմանում

Կարգավորեք խելացի շեմեր՝ իմաստալից ծանուցումներ ստանալու համար՝ առանց ձեզ ծանուցումներով ծանրաբեռնելու։

  • Հիշողության տրամադրման սպասման մեջ գտնվող > 0-ը ցույց է տալիս հիշողության ծանրաբեռնվածությունը
  • Պրոցեսորի հերթի երկարությունը մեկ միջուկի համար > 2-ի դեպքում ենթադրում է պրոցեսորի խցանում
  • Սկավառակի վայրկյան/կարդալ կամ գրել > 20 մվ ցույց է տալիս դանդաղ մուտք/ելք
  • Արգելափակված գործընթացներ > 5 ազդանշանային վիճարկման խնդիրներ
  • Էջի կյանքի տևողությունը < 300 վայրկյան ցույց է տալիս հիշողության ծանրաբեռնվածությունը

Կարգավորեք շեմերը՝ հիմնվելով ձեր բազային տվյալների և աշխատանքային ծանրաբեռնվածության որոշակի բնութագրերի վրա: Օգտագործեք հարմարվողական շեմեր, որոնք հաշվի են առնում ձեր միջավայրի նորմալ տատանումները:

9.3 Տվյալների պարբերական վերանայում և վերլուծություն

Պլանավորեք կանոնավոր կատարողականի վերանայումներ՝ միտումները և ի հայտ եկող խնդիրները բացահայտելու համար.

  • Ամենօրյա. Վերանայեք բարձր մակարդակի չափանիշները և վերջին ծանուցումները
  • Շաբաթական. Կատարել կատարողականի միտումների խորը վերլուծություն
  • Ամսական. Ստեղծեք համապարփակ հաշվետվություններ և համեմատեք դրանք բազային ցուցանիշների հետ
  • Եռամսյակային. Վերանայեք հզորությունների պլանավորումը և երկարաժամկետ միտումները

Փաստաթղթավորեք արդյունքները և հետևեք կատարողականի բարելավումներին ժամանակի ընթացքում։

9.4 Մոնիթորինգի վերադիր ծախսերի հավասարակշռում

Մոնիթորինգն ինքնին ռեսուրսներ է սպառում, ուստի հավասարակշռեք տվյալների հավաքագրումը կատարողականի վրա ազդեցության հետ.

  • Անընդհատ մոնիթորինգի համար օգտագործեք 30-60 վայրկյան ընդմիջումներ
  • Ակտիվ խնդիրների լուծման համար օգտագործեք միայն 15 վայրկյան ընդմիջումներ
  • Սահմանափակել տվյալների հավաքագրողի աշխատանքը։ Սահմանել տևողությունը՝ տվյալների ավելցուկից խուսափելու համար։
  • Պահպանեք գրանցամատյանները տվյալների բազայի ֆայլերից առանձին սկավառակների վրա
  • Արխիվացրեք հին կատարողականության տվյալները՝ կառավարելի ֆայլերի չափերը պահպանելու համար

Ճիշտ կարգավորված լինելու դեպքում Performance Monitor-ը նվազագույն ծախսեր է ավելացնում, սովորաբար համակարգի ռեսուրսների 2%-ից պակաս։

9.5 Երկարաժամկետ տվյալների պահպանում

Պահպանեք կատարողականի տվյալները՝ իմաստալից միտումների վերլուծության և կարողությունների պլանավորման համար.

  • Պահպանեք առնվազն 1-2 տարվա կատարողականի տվյալներ
  • Արխիվացրեք տվյալները առանձին պահեստում 3-6 ամիս անց
  • Սեղմեք հին գրանցամատյանների ֆայլերը՝ տարածք խնայելու համար
  • Գրանցեք ցանկացած նշանակալի իրադարձություն կամ փոփոխություն, որը ազդում է աշխատանքի արդյունավետության վրա

Հաշվի առնելով կատարողականի հաշվիչի տվյալների համեմատաբար փոքր չափը, դրանք անորոշ ժամանակով պահելը հաճախ իրագործելի է և արժեքավոր երկարաժամկետ վերլուծության համար։

9.6 DevOps պրակտիկաների հետ ինտեգրում

Ներառեք տվյալների բազայի աշխատանքի մոնիթորինգը CI/CD խողովակաշարերում.

  • Ներառել տվյալների բազայի կատարողականության չափանիշները տեղակայման վավերացման մեջ
  • Ավտոմատացրեք նոր թողարկումների կատարողականության թեստավորումը
  • Ստուգեք, որ կոդի փոփոխությունները բացասաբար չեն ազդում աշխատանքի վրա
  • Ստեղծեք կատարողականի չափանիշներ յուրաքանչյուր թողարկման համար
  • Ինտեգրեք մոնիթորինգի ահազանգերը միջադեպերի կառավարման համակարգերի հետ

10. Հաճախակի կատարողականի խնդիրների լուծում

10.1 CPU-ի խոչընդոտների բացահայտում

CPU-ի խցանումները դրսևորվում են որպես հարցումների դանդաղ արձագանքման ժամանակ և պրոցեսորի բարձր ծանրաբեռնվածություն: Օգտագործեք այս քայլերը CPU-ի խնդիրները ախտորոշելու համար.

  1. Ստուգեք պրոցեսորի հերթի երկարության հաշվիչը: Յուրաքանչյուր միջուկի համար 2-ից բարձր արժեքները ցույց են տալիս պրոցեսորի ճնշումը:
  2. Վերանայեք պրոցեսորի ժամանակի տոկոսը։ 75%-ից բարձր կայուն արժեքները վկայում են պրոցեսորի խցանման մասին։
  3. Հեռակա աշխատասեղան դեպի SQL Server
  4. Բացեք առաջադրանքների կառավարիչը (Ctrl+Shift+Esc)
  5. Սեղմեք է Գործընթացները ականջակալ
  6. Ստուգում Ցուցադրել բոլոր օգտատերերի գործընթացները
  7. Սեղմեք է CPU սյունակի վերնագիր՝ պրոցեսորի օգտագործման համաձայն տեսակավորելու համար
  8. Որոշեք, թե որ պրոցեսներն են սպառում CPU ռեսուրսները

Եթե ​​ոչ-SQL Server ծրագրերը մեծ քանակությամբ CPU են սպառում, հեռացրեք դրանք տվյալների բազայի սերվերից: Եթե sqlservr.exe-ն օգտագործում է մեծ քանակությամբ CPU, ուսումնասիրեք հետևյալ մեթոդներով՝

  • Ստուգեք SQL կոմպիլյացիաները/վրկ և SQL վերակազմակերպումները/վրկ։ Փաթեթային հարցումների/վրկ 10%-ից բարձր արժեքները ցույց են տալիս չափազանց կոմպիլյացիա։
  • Հարցում կատարեք sys.dm_exec_query_stats ֆունկցիայում՝ պրոցեսորի վրա ծանրաբեռնված հարցումները նույնականացնելու համար։
  • Վերանայեք կատարման պլանները՝ բացակայող ինդեքսների կամ անարդյունավետ գործողությունների համար
  • Դիտարկեք ինդեքսներ ավելացնելը՝ աղյուսակների սկանավորումը նվազեցնելու համար

10.2 Հիշողության խնդիրների ախտորոշում

Հիշողության խնդիրները զգալիորեն ազդում են SQL Server կատարողականություն: Ախտորոշեք հիշողության խնդիրները՝ օգտագործելով այս ցուցանիշները.

Հասանելի հիշողության կաթիլներ

Եթե ​​հասանելի ՄԲ-ը անընդհատ նվազում է 100 ՄԲ-ից, օպերացիոն համակարգը բախվում է հիշողության պակասի։ Windows-ը կարող է էջեր դուրս գրել։ SQL Server հիշողությունը սկավառակի վրա, ինչը հանգեցնում է կատարողականի անկման։

Էջի կյանքի ցածր տևողություն

Էջի կյանքի տևողության 300 վայրկյանից պակաս լինելը ցույց է տալիս բուֆերի քեշի բարձր շրջանառություն։ Սա ենթադրում է կամ հիշողության անբավարար բաշխում, կամ հարցումներից առաջացող հիշողության չափազանց մեծ ճնշում։

Ցածր բուֆերային քեշի հարվածի հարաբերակցություն

Բուֆերային քեշի հարվածի հարաբերակցությունը 99%-ից ցածր նշանակում է SQL Server հաճախ տվյալները կարդում է սկավառակից, այլ ոչ թե հիշողությունից։ Սա տեղի է ունենում, երբ բուֆերային պաշարը չափազանց փոքր է կամ SQL Server վերագործարկումից հետո դեռ տաքանում է։

Հիշողության դրամաշնորհներ սպասվում են

«Հիշողության տրամադրման սպասում» 0-ից բարձր ցանկացած արժեք նշանակում է, որ հարցումները սպասում են հիշողության տրամադրման: Սա ներկայացնում է հիշողության կրիտիկական պակաս, որը պահանջում է անհապաղ ուշադրություն:

Հիշողության հետ կապված խնդիրները լուծելու համար.

  1. Համաձեւել SQL Server առավելագույն հիշողության կարգավորում՝ օպերացիոն համակարգի համար բավարար RAM թողնելու համար (սովորաբար 4-8 ԳԲ՝ կախված սերվերի չափից)
  2. Միացնել «Էջերը հիշողության մեջ կողպել» թույլտվությունը SQL Server ծառայության հաշիվ
  3. Ավելացրեք ավելի շատ ֆիզիկական RAM սերվերին, եթե հիշողության ճնշումը շարունակվում է
  4. Հիշողություն պահանջող հարցումների նույնականացում և օպտիմալացում

10.3 Սկավառակի մուտքի/ելքի խնդիրների լուծում

Սկավառակի մուտքը/ելքը հաճախ դառնում է տվյալների բազայի համակարգերի կատարողականի հիմնական խոչընդոտը։ Ախտորոշեք սկավառակի խնդիրները հետևյալ մեթոդներով.

Սկավառակի հերթի բարձր երկարություն

Սկավառակի հերթի երկարությունը 2-ից (կամ RAID-ի դեպքում յուրաքանչյուր սկավառակի համար 2-ից) մշտապես գերազանցելը նշանակում է, որ սկավառակի ենթահամակարգը չի կարող համընթաց լինել մուտքի/ելքի հարցումների հետ։ Սա ստեղծում է սպասվող գործողությունների կուտակում։

Սկավառակի չափազանց ուշացում

Սկավառակի միջին վայրկյան/կարդալ և սկավառակի միջին վայրկյան/գրել 10-20 մվ-ից բարձր արժեքները ցույց են տալիս սկավառակի դանդաղ արձագանք։ Գործարքների գրանցման սկավառակները պահանջում են հատկապես արագ աշխատանք, իդեալականում՝ 5 մվ-ից պակաս գրելու համար։

Բարձր % սկավառակի ժամանակ

85%-ից բարձր կայուն սկավառակի ժամանակի տոկոսը ցույց է տալիս սկավառակի հագեցվածությունը։ Սկավառակն իր ժամանակի մեծ մասն անցկացնում է մուտքի/ելքի հարցումները մշակելով՝ քիչ պարապուրդի ծավալով։

Սկավառակի հետ կապված խնդիրները լուծելուց առաջ համոզվեք, որ դրանք հիշողության խնդիրների ախտանիշներ չեն։ Հիշողության անբավարար հզորություն SQL Server սկավառակից ավելի շատ տվյալներ կարդալու համար՝ արհեստականորեն ուռճացնելով սկավառակի չափանիշները։

Իրական սկավառակի մուտքի/ելքի խնդիրները լուծելու համար՝

  • Թարմացրեք ավելի արագ սկավառակների (SSD-ների՝ HDD-ների փոխարեն)
  • Ավելի լավ աշխատանքի համար ներդրեք RAID կարգավորումներ
  • Առանձնացրեք տվյալների բազայի ֆայլերը, գործարքների գրանցամատյանները և tempdb-ը տարբեր ֆիզիկական սկավառակների վրա
  • Ավելացրեք ավելի շատ հիշողություն՝ սկավառակի ընթերցումները նվազեցնելու համար
  • Օպտիմալացրեք ինդեքսները՝ ավելորդ մուտք/ելքը նվազեցնելու համար
  • Վերանայեք և օպտիմալացրեք վատ կատարողականությամբ հարցումները

10.4 Խոչընդոտների և փակուղիների լուծում

Արգելափակումը տեղի է ունենում, երբ մեկ սեսիան պահում է արգելափակումներ, որոնք խոչընդոտում են մյուս սեսիաների շարունակմանը: Հետևեք այս հաշվիչներին` արգելափակման խնդիրները հայտնաբերելու համար.

  • Արգելափակված գործընթացներ՝ Իդեալականում պետք է լինի 0
  • Կողպեքի սպասման ժամանակը/վայրկյան՝ Սպասելու կարիք ունեցող կողպեքի հարցումների քանակը
  • Սպասման միջին ժամանակը. Կողպեքի սպասման միջին տևողությունը

Արգելափակումը ստուգելու համար՝

  1. Բացեք Activity Monitor-ը SSMS-ում
  2. Ընդլայնում Գործընթացները բաժին
  3. Փնտրեք ոչ զրոյական պրոցեսներ Արգելափակված է արժեքներ
  4. Նույնականացրեք արգելափակող սեսիայի ID-ն
  5. Վերանայեք արգելափակում առաջացնող հարցումները

Ավելի մանրամասն արգելափակման վերլուծության համար օգտագործեք sp_WhoIsActive ֆունկցիան: wait_info-ի չափազանց շատ գրառումները հաճախ վկայում են tempdb-ի վիճարկման կամ արգելափակման խնդիրների մասին:

Արգելափակումը նվազեցնելու համար.

  • Նվազագույնի հասցնել գործարքի տևողությունը
  • Օգտագործեք համապատասխան մեկուսացման մակարդակներ
  • Ավելացրեք ինդեքսներ՝ կողպման տևողությունը կրճատելու համար
  • Դիտարկեք READ_COMMITTED_SNAPSHOT մեկուսացումը
  • Վերանայեք և օպտիմալացրեք երկարատև հարցումները

10.5 Հարցման կատարողականության խնդիրներ

Թանկարժեք հարցումների նույնականացումը կարևոր է SQL-ի կատարողականի մոնիթորինգի համար: Օգտագործեք այս մեթոդները՝ խնդրահարույց հարցումները գտնելու համար.

Ակտիվության մոնիտորի օգտագործումը

  1. SSMS-ում աջ սեղմեք սերվերի անվան վրա
  2. ընտրել Գործունեության մոնիտոր
  3. Ընդարձակել Վերջին թանկարժեք հարցումները
  4. Վերանայեք հարցումները բարձր CPU-ով, տևողությամբ կամ տրամաբանական ընթերցումներով

DMV-ների օգտագործումը

Հարցում կատարեք sys.dm_exec_query_stats ֆունկցիայում՝ ռեսուրսների մեծ պահանջարկ ունեցող հարցումները նույնականացնելու համար։

SELECT TOP 50
    total_worker_time/execution_count AS avg_cpu_time,
    total_logical_reads/execution_count AS avg_logical_reads,
    execution_count,
    SUBSTRING(qt.text, (qs.statement_start_offset/2)+1,
        ((CASE qs.statement_end_offset
            WHEN -1 THEN DATALENGTH(qt.text)
            ELSE qs.statement_end_offset
        END - qs.statement_start_offset)/2) + 1) AS query_text
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
ORDER BY total_worker_time DESC

Կատարման ծրագրերի վերլուծություն

  1. SSMS-ում բացեք նոր հարցման պատուհան
  2. Սեղմել Ցուցադրել գնահատված կատարման պլանը (Ctrl+L) կամ Ներառեք իրական կատարման պլանը (Ctrl+M)
  3. Կատարեք ձեր հարցումը
  4. Վերանայեք թանկարժեք գործողությունների կատարման պլանը
  5. Փնտրեք աղյուսակների սկանավորումներ, ինդեքսների սկանավորումներ կամ բարձր արժեք ունեցող գործողություններ

Հարցումների օպտիմալացում՝ ըստ հետևյալի.

  • Համապատասխան ինդեքսների ավելացում
  • Հարցումների վերաշարադրում՝ թանկարժեք գործողություններից խուսափելու համար
  • Վիճակագրության թարմացում
  • SELECT *-ի փոխարեն որոշակի սյունակների անունների օգտագործումը
  • Անտեղի DISTINCT կամ ORDER BY նախադասություններից խուսափելը

10.6 Հայտնաբերել և շտկել վնասված տվյալների բազան

Տվյալների բազայի վնասումը կարող է հանգեցնել աշխատանքի վատթարացման, տվյալների կորստի և համակարգի խափանումների: Վնասի արագ հայտնաբերումը և վերացումը կարևոր է տվյալների բազայի առողջությունը պահպանելու համար:

Տվյալների բազայի կոռուպցիայի ցուցանիշներ

Ուշադրություն դարձրեք կոռուպցիայի հնարավոր այս նշաններին.

  • Սխալի հաղորդագրություններ SQL Server սխալների գրանցամատյան (սխալ 823, 824 կամ 825)
  • Անսպասելի ծրագրային սխալներ որոշակի աղյուսակներին մուտք գործելիս
  • Հարցման դանդաղ կատարողականություն նախկինում արագ հարցումների դեպքում
  • SQL Server վթարներ կամ անսպասելի վերագործարկումներ
  • Կասկածելի էջեր, որոնք հայտնվում են msdb.dbo.suspect_pages աղյուսակում

DBCC CHECKDB-ի օգտագործումը հայտնաբերման համար

DBCC CHECKDB տվյալների բազայի վնասվածությունը հայտնաբերելու հիմնական գործիքն է: Պարբերաբար գործարկեք այն՝ խնդիրները վաղ հայտնաբերելու համար:

Կասկածելի էջերի մոնիթորինգ

SQL Server ավտոմատ կերպով գրանցում է կասկածելի էջերը msdb տվյալների բազայում։

SELECT 
    database_id,
    file_id,
    page_id,
    event_type,
    error_count,
    last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)

Վերադարձված ցանկացած տող ցույց է տալիս կոռուպցիայի հետ կապված խնդիրներ, որոնք պահանջում են անհապաղ ուշադրություն։

Կոռուպցիայի կանխարգելման ռազմավարություններ

  • Միացնել էջի ստուգումը CHECKSUM տարբերակով
  • Պահպանեք տվյալների բազայի կանոնավոր պահուստային պատճեններ
  • Օգտագործեք հուսալի սարքավորումներ՝ սխալների ուղղմամբ
  • Վերահսկեք սկավառակի առողջությունը՝ օգտագործելով արտադրողի գործիքները
  • Պլանավորեք DBCC CHECKDB-ի կանոնավոր գործարկումները
  • պահել SQL Server թարմացված է վերջին թարմացումներով

Վերականգնման և վերանորոգման տարբերակներ

Եթե ​​​​հայտնաբերվում են վնասներ, կարող եք փորձել ներկառուցված գործիքը DBCC CHECKDB դրանք շտկելու համար։ Եթե ձախողվի, օգտագործեք երրորդ կողմի գործիքներ, ինչպիսիք են՝ DataNumen SQL Recovery որը կարող է հաղթահարել լուրջ կոռուպցիայի դեպքերը։

11. Մշտադիտարկման առաջադեմ մեթոդներ

11.1 Հարցումների պահեստի մոնիթորինգ

Query Store, ներկայացվել է SQL Server 2016 թվականին հարցումների կատարողականության տվյալները հավաքագրվում են ավտոմատ կերպով։ Այն արժեքավոր պատկերացում է տալիս հարցումների վարքագծի, կատարման ծրագրերի և կատարողականության միտումների վերաբերյալ։

Հարցումների պահեստի միացում

  1. SSMS Object Explorer-ում աջ սեղմեք տվյալների բազայի վրա
  2. ընտրել Հատկություններ
  3. Սեղմեք է Հարցումների խանութ էջ
  4. In Գործողության ռեժիմ (պահանջվում է)ընտրեք Կարդալ Գրել
  5. Անհրաժեշտության դեպքում կարգավորեք լրացուցիչ կարգավորումները
  6. Սեղմել OK

Հարցման կատարողականի մոնիթորինգ

Access Query Store հաշվետվությունները Object Explorer-ի միջոցով՝

  1. Ընդարձակեք տվյալների բազան Object Explorer-ում
  2. Ընդարձակել Հարցումների խանութ
  3. Ընտրեք առկա հաշվետվություններից՝
    • Հետընթաց հարցումներ
    • Ընդհանուր ռեսուրսների սպառում
    • Ռեսուրսների սպառման վերաբերյալ ամենատարածված հարցումները
    • Հարցումներ հարկադիր պլաններով
    • Հետևվող հարցումներ

Պլանի ռեգրեսիայի հայտնաբերում

Հարցումների խանութը ավտոմատ կերպով հայտնաբերում է, երբ հարցումների կատարման պլանները փոխվում են, և արդյունավետությունը վատանում է: Վերանայեք «Ռեգրեսացված հարցումներ» հաշվետվությունը՝ պլանի փոփոխություններից ազդված հարցումները նույնականացնելու համար:

Հարկադիր պլանի կառավարում

Երբ Query Store-ը նույնականացնում է ավելի լավ կատարման պլան, ստիպեք SQL Server օգտագործել այն՝

  1. Բացեք հարցումը Query Store-ում
  2. Սեղմեք աջ կոճակով ցանկալի պլանի վրա
  3. ընտրել Ուժային պլան

Սա անմիջապես բարելավում է կատարողականությունը՝ առանց կոդի փոփոխությունների անհրաժեշտության։

11.2 Ինդեքսի սպասարկման մոնիթորինգ

Ինդեքսի մասնատումը ժամանակի ընթացքում վատթարացնում է հարցումների արդյունավետությունը: Պարբերաբար վերահսկեք և պահպանեք ինդեքսները՝ օպտիմալ արդյունավետությունն ապահովելու համար:

Ֆրագմենտացիայի ստուգում

Օգտագործեք այս հարցումը՝ ինդեքսի մասնատումը ստուգելու համար.

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_fragmentation_in_percent,
    ps.page_count
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_fragmentation_in_percent > 10
    AND ps.page_count > 1000
ORDER BY ps.avg_fragmentation_in_percent DESC

Գործարկեք այս հարցումը ոչ պիկ ժամերին, քանի որ դա կարող է ռեսուրսների մեծ սպառում ունենալ։

Էջի խտության վերլուծություն

Էջի խտությունը ցույց է տալիս, թե որքանով են լի ինդեքսային էջերը։ Ցածր խտությունը վատնում է տարածք և նվազեցնում է արդյունավետությունը։

SELECT 
    OBJECT_NAME(i.object_id) AS table_name,
    i.name AS index_name,
    ps.avg_page_space_used_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'SAMPLED') ps
INNER JOIN sys.indexes i ON ps.object_id = i.object_id 
    AND ps.index_id = i.index_id
WHERE ps.avg_page_space_used_in_percent < 75

Վերակազմակերպման և վերակառուցման որոշումներ

Ընտրեք ինդեքսի պահպանման գործողությունները՝ հիմնվելով մասնատման մակարդակների վրա.

  • Ֆրագմենտացիա 10-30%: Օգտագործեք ALTER INDEX REORGANIZE
  • Ֆրագմենտացիա > 30%։ Օգտագործեք ALTER INDEX REBUILD-ը։
  • Ֆրագմենտացիա < 10%: Գործողության կարիք չկա

Վերակազմակերպման գործողությունները պահանջում են ավելի քիչ ռեսուրսներ և կարող են իրականացվել առցանց: Վերակառուցման գործողությունները ավելի մանրակրկիտ են, բայց սպառում են զգալի ռեսուրսներ:

11.3 Տվյալների բազայի վիճակագրության թարմացումներ

Տվյալների բազայի վիճակագրության օգնություն SQL Server-ի հարցումների օպտիմիզատորը ստեղծում է արդյունավետ կատարման պլաններ: Հնացած վիճակագրությունը հանգեցնում է հարցումների վատ աշխատանքի:

Ավտոմատ վիճակագրության վերակառուցում

Միացնել վիճակագրության ավտոմատ թարմացումները.

ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON
ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON

Առողջության վիճակագրության մոնիթորինգ

Ստուգեք, թե երբ է վիճակագրությունը վերջին անգամ թարմացվել.

SELECT 
    OBJECT_NAME(s.object_id) AS TableName,
    s.name AS StatisticsName,
    STATS_DATE(s.object_id, s.stats_id) AS LastUpdated,
    sp.rows,
    sp.modification_counter
FROM sys.stats s
CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) sp
WHERE STATS_DATE(s.object_id, s.stats_id) < DATEADD(DAY, -7, GETDATE())
ORDER BY LastUpdated

Անհրաժեշտության դեպքում ձեռքով թարմացրեք վիճակագրությունը.

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Անհատականացված կատարողականի տվյալների հավաքագրում

Ստեղծեք կատարողականի մոնիթորինգի հատուկ լուծումներ՝ ուղղակիորեն sys.dm_os_performance_counters հարցում ուղարկելով և արդյունքները աղյուսակներում պահելով:

Ստեղծելով հատուկ հավաքածուի սկրիպտներ

Կառուցեք պահված ընթացակարգ՝ կատարողականության հաշվիչի տվյալները հավաքելու համար.

CREATE PROCEDURE dbo.CollectPerformanceCounters
AS
BEGIN
    INSERT INTO dbo.PerformanceHistory (
        SampleTime,
        CounterName,
        CounterValue
    )
    SELECT 
        GETDATE(),
        counter_name,
        cntr_value
    FROM sys.dm_os_performance_counters
    WHERE counter_name IN (
        'Page life expectancy',
        'Batch Requests/sec',
        'Buffer cache hit ratio'
    )
END

sys.dm_os_performance_counters-ի օգտագործումը

Հարցման կատարողականության հաշվիչները անմիջապես՝

SELECT 
    object_name,
    counter_name,
    instance_name,
    cntr_value,
    cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%'
ORDER BY counter_name

Պատմական տվյալների պահպանում

Ստեղծեք աղյուսակ՝ ժամանակի ընթացքում կատարողականի չափանիշները պահելու համար։

CREATE TABLE dbo.PerformanceHistory (
    ID INT IDENTITY PRIMARY KEY,
    SampleTime DATETIME2 NOT NULL,
    PageLifeExpectancy BIGINT,
    BatchRequestsPerSec DECIMAL(18,4),
    BufferCacheHitRatio DECIMAL(5,2)
)

CREATE CLUSTERED COLUMNSTORE INDEX CCI_PerformanceHistory 
ON dbo.PerformanceHistory

Կենտրացված տվյալների պահպանման մեթոդներ

Պահպանեք տվյալները շրջված ձևաչափով՝ մեկ տող յուրաքանչյուր նմուշի համար և մեկ սյունակ յուրաքանչյուր հաշվիչի համար։ Սա կրճատում է պահեստային տարածքը և բարելավում հարցման արդյունավետությունը՝ համեմատած մեկ հաշվիչի համար մեկ տող մեկ նմուշի համար պահելու հետ։

11.5 Բազմասերվերային մոնիթորինգ

Բազմաթիվ միջավայրերի համար SQL Server դեպքերում իրականացնել կենտրոնացված մոնիթորինգ։

Կենտրոնացված մոնիթորինգի մոտեցում

  • Ստեղծեք նվիրված մոնիթորինգի տվյալների բազա առանձին սերվերի վրա
  • Հավաքագրեք տվյալները բոլոր սերվերներից կենտրոնական պահոցում
  • օգտագործում SQL Server Գործակալի աշխատանքներ՝ հավաքագրման սկրիպտներ գործարկելու համար
  • Ներդրեք ցանցին հասանելի կատարողականության հաշվիչի հավաքագրում

Հեռակա սերվերի մոնիտորինգ

Կարգավորեք Performance Monitor-ը՝ հեռակա սերվերներից տվյալներ հավաքելու համար՝ հաշվիչներ ավելացնելիս նշելով սերվերի անունները: Համոզվեք, որ firewall-ի կանոնները թույլատրում են Performance Monitor-ի երթևեկությունը:

Խաչաձև սերվերային հաշվետվություն

Ստեղծեք հաշվետվություններ, որոնք համեմատում են բազմաթիվ սերվերների կատարողականությունը՝ արտառոց ցուցանիշները և հզորության անհավասարակշռությունը բացահայտելու համար։

12. Մոնիտորինգ SQL Server ամպային միջավայրերում

12.1 Azure SQL տվյալների բազայի մոնիթորինգ

Azure SQL տվյալների բազան ապահովում է ներկառուցված մոնիթորինգի հնարավորություններ, որոնք տարբերվում են տեղական տվյալների բազայի մոնիթորինգի հնարավորություններից։ SQL Server.

Azure Monitor ինտեգրացիա

Azure Monitor-ը ավտոմատ կերպով հավաքում է չափանիշներ Azure SQL տվյալների բազայից, ներառյալ՝

  • DTU կամ vCore-ի օգտագործումը
  • Պահեստի օգտագործումը
  • Կապի վիճակագրություն
  • Փակուղիներ և ժամկետանցներ

Այս չափանիշներին մուտք գործեք Azure Portal-ի կամ Azure Monitor API-ի միջոցով։

Ներկառուցված մոնիթորինգի հնարավորություններ

Azure SQL տվյալների բազան ներառում է.

  • Ավտոմատ կարգավորման առաջարկություններ
  • Հարցման կատարողականության վերլուծություն
  • Խելացի պատկերացումներ անոմալիաների հայտնաբերման համար
  • Ներկառուցված ահազանգման և ախտորոշման համակարգ

Հարցման կատարողականության վերլուծություն

Այս գործառույթը հնարավորություն է տալիս վիզուալիզացնել ամենաշատ ռեսուրսներ սպառող հարցումները, վերլուծել հարցման տևողությունը և պատմական կատարողականի միտումները: Մուտք գործեք դրան ձեր SQL տվյալների բազայի ռեսուրսի տակ գտնվող Azure Portal-ի միջոցով:

12.2 Cloud-Native մոնիթորինգի գործիքներ

Ամպային հարթակները առաջարկում են իրենց միջավայրերի համար օպտիմալացված բնիկ մոնիթորինգի լուծումներ.

  • Azure Monitor և Application Insights Azure SQL տվյալների բազայի համար
  • AWS CloudWatch RDS-ի համար SQL Server
  • Google Cloud Monitoring Cloud-ի համար SQL Server

Այս գործիքները անխափան ինտեգրվում են ամպային ենթակառուցվածքի հետ և ապահովում են միասնական մոնիթորինգ բոլոր ամպային ռեսուրսների համար։

Հիբրիդային միջավայրի մոնիթորինգ

Հիբրիդային տեղակայումների համար, որոնք ընդգրկում են ինչպես տեղում, այնպես էլ ամպային համակարգեր, օգտագործեք գործիքներ, որոնք աջակցում են ինչպես միջավայրերին, ինչպիսիք են Redgate SQL Monitor-ը, SolarWinds DPA-ն, այնպես էլ կենտրոնացված տվյալների հավաքագրում օգտագործող հատուկ լուծումներին։

12.3 Արդյունավետության տարբերությունները ամպային միջավայրում

Ամպ SQL Server Միջավայրերը ունեն հետևյալ յուրահատուկ առանձնահատկությունները.

Ռեսուրսների բաշխման մոդելներ

Ամպային մատակարարները օգտագործում են ռեսուրսների բաշխման տարբեր մեթոդներ (DTU, vCores, առանց սերվերի), որոնք ազդում են ձեր կողմից կատարողականի չափանիշների մեկնաբանման վրա: Հասկացեք ձեր ծառայության մակարդակի սահմանափակումներն ու բնութագրերը:

Սանդղակավորման նկատառումներ

Ամպային միջավայրերը առաջարկում են դինամիկ մասշտաբավորման հնարավորություններ: Վերահսկեք ռեսուրսների օգտագործումը՝ որոշելու համար, թե երբ պետք է մասշտաբը մեծացնել կամ փոքրացնել: Շատ ամպային հարթակներ ապահովում են ավտոմատ մասշտաբավորում՝ հիմնված կատարողականի շեմերի վրա:

13. Արդյունավետության մոնիթորինգի ավտոմատացում

13.1 SQL Server Գործակալի աշխատատեղեր

Ավտոմատացրեք տվյալների հավաքագրումը՝ օգտագործելով SQL Server Գործակալի աշխատանքներ՝ հետևողական մոնիթորինգի համար՝ առանց ձեռքով միջամտության։

Պլանավորված տվյալների հավաքագրում

  1. SSMS-ում ընդարձակեք SQL Server Գործակալ
  2. Աջ - կտտացրեք Աշխատանք եւ ընտրել Նոր աշխատանք
  3. Անվանեք աշխատանքը (օրինակ՝ «Հավաքեք կատարողականի չափանիշներ»)
  4. Սեղմել Քայլեր և ավելացնել նոր քայլ
  5. Սահմանել տեսակը որպես Transact-SQL սկրիպտ
  6. Մուտքագրեք ձեր տվյալների հավաքագրման սկրիպտը
  7. Սեղմել Ժանրեր և ավելացրեք ժամանակացույց
  8. Կարգավորեք հաճախականությունը (օրինակ՝ յուրաքանչյուր 5 րոպեն մեկ)
  9. Սեղմել OK աշխատանքը ստեղծելու համար

Ավտոմատ հաշվետվություն

Ստեղծեք աշխատատեղեր, որոնք ստեղծում և ուղարկում են կատարողականի մասին հաշվետվություններ էլ. փոստով.

  1. Ստեղծեք պահված ընթացակարգ, որը կստեղծի հաշվետվություններ
  2. Օգտագործեք տվյալների բազայի փոստը՝ հաշվետվություններ էլ. փոստով ուղարկելու համար
  3. Պլանավորեք աշխատանքը՝ այն կատարելու օրական կամ շաբաթական ռեժիմով

13.2 PowerShell ավտոմատացում

PowerShell-ը ապահովում է հզոր ավտոմատացման հնարավորություններ՝ SQL Server կատարողականի մոնիտոր։

Արդյունավետության հաշվիչի հավաքագրման սկրիպտներ

$counters = @(
    '\Processor(_Total)\% Processor Time',
    '\Memory\Available MBytes',
    '\PhysicalDisk(_Total)\Avg. Disk sec/Read'
)

$data = Get-Counter -Counter $counters -ComputerName 'SQLServer01'
$data.CounterSamples | Export-Csv 'C:\PerfLogs\counters.csv' -Append

WMI հարցումներ

Օգտագործեք WMI-ը՝ հեռակա սերվերներից կատարողականի տվյալներ հավաքելու համար.

$cpu = Get-WmiObject Win32_Processor -ComputerName 'SQLServer01'
$memory = Get-WmiObject Win32_OperatingSystem -ComputerName 'SQLServer01'

Write-Host "CPU Usage: $($cpu.LoadPercentage)%"
Write-Host "Available Memory: $([math]::Round($memory.FreePhysicalMemory/1MB,2)) GB"

Ավտոմատացված ահազանգում

Ստեղծեք PowerShell սկրիպտներ, որոնք ստուգում են չափանիշները և ուղարկում են ծանուցումներ, երբ շեմերը խախտվում են։

$cpuThreshold = 80
$cpu = (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue

if ($cpu -gt $cpuThreshold) {
    Send-MailMessage -To 'dba@company.com' -Subject 'High CPU Alert' `
        -Body "CPU usage is $cpu%" -SmtpServer 'smtp.company.com'
}

13.3 Մոնիթորինգի վահանակների ստեղծում

Ավելի լավ պատկերացում ստանալու համար պատկերացրեք կատարողականի տվյալները ինտերակտիվ վահանակների միջոցով։

Power BI ինտեգրում

  1. Միացրեք Power BI-ը ձեր կատարողականի տվյալների աղյուսակներին
  2. Ստեղծեք վիզուալիզացիաներ հիմնական չափանիշների համար
  3. Ավելացրեք կտրիչներ ժամանակային միջակայքի և սերվերի ընտրության համար
  4. Հրապարակեք վահանակներ Power BI ծառայության մեջ
  5. Կարգավորեք ավտոմատ թարմացման ժամանակացույցները

Իրական ժամանակում վահանակի ստեղծում

Օգտագործեք Grafana-ի նման գործիքներ կամ հատուկ վեբ հավելվածներ՝ իրական ժամանակի վահանակներ ստեղծելու համար, որոնք ուղղակիորեն հարցումներ են ուղարկում DMV-ներին և կատարողականության հաշվիչներին։

Պատմական միտումների վիզուալիզացիա

Կառուցեք գծային դիագրամներ, որոնք ցույց են տալիս ժամանակի ընթացքում միտումները հետևյալի համար՝

  • Պրոցեսորի օգտագործումը
  • Հիշողության օգտագործումը
  • Սկավառակի մուտք/ելք
  • Հարցման կատարողականություն
  • Միացումների քանակը

14. Դեպքի ուսումնասիրություն և գործնական օրինակներ

14.1 Ուսումնասիրություն. Հիշողության ճնշման լուծում

Ախտանիշի նույնականացում

Արտադրություն SQL Server պիկ ժամերին հարցումներին արձագանքելու ժամանակը դանդաղ էր։ Օգտատերերը բողոքում էին հավելվածի ժամանակի ընդհատման և վատթարացող աշխատանքի մասին։

Հակադարձ վերլուծություն

Performance Monitor-ի տվյալները բացահայտվել են.

  • Էջի կյանքի տևողությունը նվազել է մինչև 50 վայրկյան (նորմալ՝ >300)
  • Բուֆերային քեշի հարվածի հարաբերակցությունը նվազեց մինչև 85% (նորմալ՝ >99%)
  • Հիշողության տրամադրման սպասող ծրագրերը հաճախ ցույց էին տալիս 5-10 արժեքներ
  • Ֆիզիկական սկավառակի ընթերցումների քանակը վայրկյանում զգալիորեն աճել է

Բանաձեւի քայլեր

  1. Ստուգվում SQL Server առավելագույն հիշողության կարգավորում – հայտնաբերվեց, որ այն սահմանված է լռելյայն (անսահմանափակ)
  2. Վերանայված սերվերի ընդհանուր հիշողությունը և թիրախային սերվերի հիշողությունը ցույց տվեցին զգալի տարբերություն
  3. Կարգավորված է սերվերի առավելագույն հիշողությունը՝ օպերացիոն համակարգի համար թողնելով 8 ԳԲ
  4. «Էջերը հիշողության մեջ կողպելու» թույլտվությունը միացված է SQL Server ծառայության հաշիվ
  5. Սերվերին ավելացվել է 32 ԳԲ լրացուցիչ օպերատիվ հիշողություն
  6. Մեկ շաբաթվա ընթացքում վերահսկվող արդյունավետություն. էջի կյանքի տևողությունը կայունացել է 500 վայրկյանից բարձր։

Արդյունքը: Հարցումների արձագանքման ժամանակը բարելավվել է 60%-ով, օգտատերերի բողոքները դադարեցվել են, և հավելվածի աշխատանքը վերադարձել է նորմալ մակարդակի։

14.2 Ուսումնասիրություն. CPU-ի աշխատանքի օպտիմալացում

Ախտանիշի նույնականացում

A SQL Server աշխատանքային ժամերին մշտապես ցույց էր տալիս CPU-ի 90%-ից բարձր ծանրաբեռնվածություն, ինչը հանգեցնում էր հավելվածների դանդաղ աշխատանքի և օգտատերերի հիասթափության։

Հակադարձ վերլուծություն

Արդյունավետության մոնիթորինգը բացահայտեց.

  • Պրոցեսորի ժամանակի միջին տոկոսը կազմել է 92%՝ հաճախակի թռիչքներով մինչև 100%
  • Պրոցեսորի հերթի երկարությունը մշտապես գերազանցում էր 4-ը (սերվերն ուներ 8 միջուկ)
  • SQL կոմպիլյացիաները/վայրկյան կազմում էին խմբաքանակային հարցումների/վայրկյան 25%-ը (պետք է լիներ <10%)։
  • SQL վերակազմավորումները/վայրկյան կազմում էին խմբաքանակային հարցումների/վայրկյան 15%-ը։

Բանաձեւի քայլեր

  1. Օգտագործվել են DMV-ներ՝ CPU-ն ամենաշատը սպառող հարցումները բացահայտելու համար
  2. Վերլուծված են բացահայտված հարցումների կատարման պլանները
  3. Հայտնաբերվել են մեծ աղյուսակների վրա բազմաթիվ աղյուսակների սկանավորումներ՝ բացակայող ինդեքսների պատճառով։
  4. Ստեղծվել են համապատասխան ինդեքսներ՝ հիմնվելով կատարման պլանի առաջարկությունների վրա
  5. Հայտնաբերվել է դինամիկ SQL, որը առաջացնում է չափազանց շատ կոմպիլյացիաներ
  6. Փոփոխված ծրագրի կոդ՝ պարամետրացված հարցումներ օգտագործելու համար
  7. Ներդրված պլանի ուղեցույց խնդրահարույց պահված ընթացակարգերի համար
  8. Թարմացված վիճակագրությունը հաճախ օգտագործվող աղյուսակների վերաբերյալ

Արդյունքը: Աշխատանքային ժամերին CPU-ի ծանրաբեռնվածությունը նվազել է մինչև միջինը 45%: Հարցումների կատարման ժամանակը բարելավվել է 70%-ով: Ծրագրի արձագանքողականությունը զգալիորեն բարելավվել է:

14.3 Ուսումնասիրություն. Սկավառակի մուտքի/ելքի խցանման լուծում

Ախտանիշի նույնականացում

Օգտատերերը հայտնել են հավելվածի չափազանց դանդաղ արձագանքի մասին տվյալների բեռնման գործողությունների և երեկոյան խմբաքանակային մշակման ժամանակ։

Հակադարձ վերլուծություն

Արդյունավետության տվյալները ցույց տվեցին.

  • Միջին սկավառակի վայրկյան/գրառման արագությունը գործարքների գրանցման սկավառակի վրա գերազանցել է 45 մվ-ը
  • Սկավառակի հերթի միջին երկարությունը տվյալների ֆայլերի կրիչի վրա կազմել է 12
  • Խմբային աշխատանքների ժամանակ սկավառակի ժամանակի տոկոսը ժամերով մնացել է 95%-ից բարձր
  • Էջերի գրման քանակը վայրկյանում չափազանց բարձր էր

Բանաձեւի քայլեր

  1. Հաստատված հիշողության կարգավորումները համապատասխան էին. հիշողության հետ կապված խնդիրներ չեն հայտնաբերվել
  2. Վերլուծված սկավառակի կոնֆիգուրացիա՝ բոլոր ֆայլերը հայտնաբերվել են նույն spindle հավաքածուի վրա
  3. Առանձնացված գործարքների գրանցամատյաններ՝ նվիրված արագ SSD սկավառակների համար
  4. tempdb-ը տեղափոխվեց SSD սկավառակներից առանձին։
  5. Իրականացվել են մի քանի tempdb տվյալների ֆայլեր (մեկը յուրաքանչյուր միջուկի համար)
  6. Տվյալների ֆայլերի կրիչները թարմացվել են RAID 10 SSD կոնֆիգուրացիայի
  7. Օպտիմիզացված խմբաքանակային աշխատանքներ՝ ավելի փոքր գործարքների խմբաքանակներ օգտագործելու համար
  8. Ավելացվել են ինդեքսներ՝ խմբային գործողությունների ընթացքում աղյուսակների ավելորդ սկանավորումը նվազեցնելու համար։

Արդյունքը: Սկավառակի վրկ/գրառման միջին ժամանակը նվազել է մինչև 3 մվ։ Սկավառակի հերթի երկարությունը միջինում 1-ից ցածր է։ Փաթեթային աշխատանքի ավարտման ժամանակը կրճատվել է 75%-ով։

15. Ապագա միտումները SQL Server Մոնիտորինգ

15.1 AI և մեքենայական ուսուցման ինտեգրում

Արհեստական ​​բանականությունն ու մեքենայական ուսուցումը փոխակերպվում են SQL Server կատարողականի մոնիտոր։

Կանխատեսելի վերլուծություն

Մեքենայական ուսուցման մոդելները կանխատեսում են ապագա ռեսուրսների կարիքները՝ հիմնվելով պատմական տվյալների վրա: Այս համակարգերը կարող են կանխատեսել.

  • Երբ պահեստային հզորությունը կսպառվի
  • Պիկ ժամանակահատվածներում պրոցեսորի և հիշողության սպասվող պահանջները
  • Հարցման կատարողականի վատթարացում՝ նախքան օգտատերերի վրա ազդելը
  • Սպասարկման գործողությունների համար օպտիմալ ժամանակներ

Անոմալիայի հայտնաբերում

Արհեստական ​​բանականության վրա հիմնված գործիքները ավտոմատ կերպով հայտնաբերում են կատարողականի չափանիշների անսովոր օրինաչափությունները։ Դրանք բացահայտում են անոմալիաներ, որոնք մարդկային ադմինիստրատորները կարող են անտեսել, և տարբերակում են նորմալ տատանումները իրական խնդիրներից։

Ավտոմատացված վերականգնում

Ինքնաբուժման համակարգերը ավտոմատ կերպով լուծում են տարածված խնդիրները, երբ հայտնաբերվում են.

  • Վերագործարկեք դադարեցված ծառայությունները
  • Վերաբաշխեք ռեսուրսները գագաթնակետային ծանրաբեռնվածության ժամանակ
  • Կիրառել թեժ շտկումներ հայտնի խնդիրների համար
  • Ավտոմատ կերպով վերակառուցեք մասնատված ինդեքսները

15.2 Ամպային մոնիթորինգի զարգացում

Ամպային մոնիթորինգը շարունակում է զարգանալ՝ նոր հնարավորություններով։

Միասնական մոնիթորինգի հարթակներ

Ժամանակակից հարթակները մեկ ապակե վահանակով ապահովում են հետևյալ տեսանելիությունը՝

  • Տեղում SQL Server դեպքերում
  • Ամպային հոսթինգով տվյալների բազաներ
  • Հիբրիդային միջավայրեր
  • Դիմումի կատարողականություն
  • Ենթակառուցվածքային չափանիշներ

Դիտարկելիության միտումներ

Մոնիթորինգից դիտարկելիության անցումը շեշտում է.

  • Համակարգի վարքագծի հասկացումը ելքային տվյալներից
  • Չափանիշների, գրանցամատյանների և հետագծերի համեմատում
  • Բաշխված համակարգերի խորը ուսումնասիրություն
  • Իրական ժամանակում խնդրի ախտորոշում

15.3 Ինքնաբուժվող տվյալների բազայի համակարգեր

Ապագա SQL Server տարբերակները կներառեն ավելի շատ ինքնավար հնարավորություններ։

Ավտոմատ օպտիմիզացում

Տվյալների բազաները անընդհատ կօպտիմալացվեն՝

  • Ավտոմատ կերպով ինդեքսների ստեղծում և հեռացում՝ աշխատանքային ծանրաբեռնվածության հիման վրա
  • Կարգավորումների կարգավորում՝ օպտիմալ աշխատանքի համար
  • Անարդյունավետ հարցումները թափանցիկ կերպով վերաշարադրելը
  • Ռեսուրսների դինամիկ բաշխման կառավարում

Խելացի կարգավորում

Առաջադեմ համակարգերը կսովորեն կատարողականի օրինաչափություններից և կկիրառեն կարգավորման առաջարկությունները ավտոմատ կերպով, նվազեցնելով DBA-ի ձեռքով միջամտության անհրաժեշտությունը։

16. Եզրակացություն և հիմնական միջոցներ

16.1 Հիմնական մոնիթորինգի պրակտիկաների ամփոփում

Արդյունավետ SQL Server Արդյունավետության մոնիթորինգը պահանջում է համապարփակ մոտեցում, որը համատեղում է գործիքները, տեխնիկան և լավագույն փորձը։

Կրիտիկական հաշվիչների ամփոփում

Կենտրոնացրեք մոնիթորինգի ջանքերը այս կարևոր հաշվիչների վրա՝

  • Հիշողություն. Էջի կյանքի տևողություն, բուֆերային քեշի հարվածի հարաբերակցություն, հիշողության տրամադրման սպասվող ժամանակահատված
  • CPU: Պրոցեսորի ժամանակի %, Պրոցեսորի հերթի երկարություն
  • Սկավառակ. Միջին սկավառակի վայրկյան/կարդալ և գրել, սկավառակի հերթի երկարություն
  • SQL ServerԽմբային հարցումներ/վրկ, Կոմպիլյացիաներ/վրկ, Օգտատիրոջ կապեր

Լավագույն փորձի ամփոփում

  • Սահմանեք բազային գծեր սովորական գործունեության ընթացքում
  • Սահմանեք խելացի տագնապի շեմեր՝ հիմնվելով բազային գծերի վրա
  • Պարբերաբար վերանայեք կատարողականի տվյալները
  • Հավասարակշռեք մոնիթորինգի ծախսերը տվյալների մանրամասնության հետ
  • Պահպանեք երկարաժամկետ տվյալները միտումների վերլուծության համար
  • Օգտագործեք համապատասխան գործիքներ յուրաքանչյուր մոնիթորինգի սցենարի համար

16.2 Շարունակական կատարելագործման մոտեցում

SQL Server Արդյունավետության մոնիթորինգը միանգամյա գործողություն չէ, այլ շարունակական գործընթաց, որը պահանջում է անընդհատ կատարելագործում։

Կանոնավոր վերանայման ցիկլեր

  • Ամեն օր. Ստուգեք ծանուցումները և ընթացիկ կատարողականը
  • Շաբաթական. Վերանայեք միտումները և բացահայտեք ի հայտ եկող խնդիրները
  • Ամսական. Վերլուծեք երկարաժամկետ միտումները և հզորությունների կարիքները
  • Եռամսյակային. թարմացնել բազային ցուցանիշները և վերանայել մոնիթորինգի արդյունավետությունը

Մնալով արդիական գործիքների հետ

Պահպանեք մոնիթորինգի գործիքներն ու տեխնիկան արդիականացված.

  • Գնահատեք նոր մոնիթորինգի գործառույթները SQL Server թարմացումները
  • Փորձարկեք զարգացող երրորդ կողմի գործիքները
  • Մասնակցեք վերապատրաստման և կոնֆերանսների
  • Մասնակցեք SQL Server համայնքային ֆորումներ
  • Կիսվեք գիտելիքներով թիմի անդամների հետ

16.3 Հաջորդ քայլերը

Իրականացնել SQL Server կատարողականի համակարգված մոնիթորինգ.

Իրականացման ճանապարհային քարտեզ

  1. Շաբաթ 1: Կարգավորեք Performance Monitor-ը անհրաժեշտ հաշվիչներով
  2. Շաբաթ 2: Ստեղծեք տվյալների հավաքագրողների հավաքածուներ ավտոմատացված հավաքագրման համար
  3. Շաբաթ 3: Սահմանեք բազային գծեր սովորական գործունեության ընթացքում
  4. Շաբաթ 4: Կարգավորեք կարևորագույն շեմերի համար զգուշացումները
  5. Ամիս 2: Ներդրեք լրացուցիչ մոնիթորինգի գործիքներ (DMV-ներ, ընդլայնված միջոցառումներ)
  6. Ամիս 3: Մշակել անհատականացված վահանակներ և հաշվետվություններ
  7. Ընթացիկ: Կատարելագործեք մոնիթորինգը՝ հիմնվելով փորձի և փոփոխվող պահանջների վրա

Լրացուցիչ ռեսուրսներ

Շարունակեք սովորել SQL Server վերահսկեք կատարողականությունը Microsoft-ի փաստաթղթերի, համայնքային բլոգների և գործնական պրակտիկայի միջոցով: Փորձարկեք տարբեր գործիքներ և տեխնիկաներ՝ գտնելու համար, թե որն է լավագույնս աշխատում ձեր միջավայրի համար:

17. Հաճախակի տրվող հարցեր (ՀՏՀ)

17.1 Որո՞նք են ամենակարևորները SQL Server կատարողականի հաշվիչներ՝ վերահսկելու համար։

Ամենակարևորը SQL Server Արդյունավետության հաշվիչները ներառում են.

  • Հիշողություն. Էջի կյանքի տևողություն (պետք է լինի >300 վայրկյան) և բուֆերային քեշի ազդեցության հարաբերակցություն (պետք է լինի >99%)
  • CPU: Պրոցեսորի ժամանակի տոկոսը (կայուն արժեքներ <75%) և Պրոցեսորի հերթի երկարությունը (պետք է լինի <2 մեկ միջուկի համար)
  • Սկավառակ. Սկավառակի միջին վայրկյան/կարդալ և գրել ժամանակը (պետք է լինի <10-20 մվ) և սկավառակի հերթի երկարությունը (պետք է լինի <2 մեկ սկավառակի համար)
  • SQL ServerՓաթեթային հարցումներ/վրկ, SQL կոմպիլյացիաներ/վրկ, և հիշողության տրամադրման սպասման ժամկետ (պետք է լինի 0)

Այս հաշվիչները տալիս են համակարգի առողջության վերաբերյալ համապարփակ պատկերացում և օգնում են արագորեն հայտնաբերել խոչընդոտները։

17.2 Որքա՞ն հաճախ պետք է հավաքեմ կատարողականի վերաբերյալ տվյալներ։

Հավաքագրման հաճախականությունը կախված է ձեր մոնիթորինգի նպատակներից՝

  • Հիմնական մոնիթորինգ՝ Յուրաքանչյուր 1 րոպեն մեկ (60 վայրկյան)
  • Ակտիվ խնդիրների լուծում. Յուրաքանչյուր 15-30 վայրկյանը մեկ՝ կարճ ժամանակահատվածներում
  • Երկարաժամկետ միտում՝ յուրաքանչյուր 5 րոպեն մեկ

Խուսափեք բարձր հաճախականությամբ տվյալների անընդհատ հավաքագրումից, քանի որ դա կարող է ազդել աշխատանքի արդյունավետության վրա և առաջացնել չափազանց շատ տվյալներ: Ավելի երկար ժամանակահատվածներ օգտագործեք կանոնավոր մոնիթորինգի համար և ավելի կարճ ժամանակահատվածներ՝ միայն կոնկրետ խնդիրներ ուսումնասիրելիս:

17.3 Ի՞նչ տարբերություն կա Performance Monitor-ի և SQL Server Պրոֆիլեր՞

Արդյունավետության մոնիտոր և SQL Server Profiler-ը ծառայում է տարբեր նպատակների՝

Արդյունավետության մոնիտոր՝

  • Մոնիտորների համակարգ և SQL Server կատարողականության հաշվիչներ
  • Հետևում է ռեսուրսների օգտագործմանը (CPU, հիշողություն, սկավառակ)
  • Ցածր վերադիր ծախսեր, հարմար է շարունակական մոնիթորինգի համար
  • Ժամանակի ընթացքում տրամադրում է ամփոփ ցուցանիշներ

SQL Server Պրոֆիլավորող:

  • Հետքեր առանձին SQL Server իրադարձություններ և հարցումներ
  • Գրանցում է հարցման կատարման մանրամասն տեղեկատվություն
  • Ավելի բարձր ծախսեր, խորհուրդ չի տրվում շարունակական օգտագործման համար
  • Լավագույնն է որոշակի հարցումների հետ կապված խնդիրների լուծման համար
  • Հերքվել է երկարաձգված միջոցառումների օգտին

Օգտագործեք Performance Monitor-ը համակարգի ընդհանուր մոնիթորինգի համար, իսկ Extended Events-ը (ոչ թե Profiler-ը)՝ հարցման մակարդակի մանրամասն վերլուծության համար։

17.4 Կարո՞ղ է արդյոք Performance Monitor-ը ազդել SQL Server կատարումը?

Ճիշտ կարգավորված լինելու դեպքում Performance Monitor-ը նվազագույն ազդեցություն ունի SQL Server կատարողականություն, սովորաբար 2%-ից պակաս վերադիր ծախսեր: Այնուամենայնիվ, չափազանց մոնիթորինգը կարող է խնդիրներ առաջացնել.

  • Հաշվիչների չափազանց շատությունը մեծացնում է ծախսերը
  • Շատ կարճ նմուշառման միջակայքեր (15 վայրկյանից պակաս) լարվածության ռեսուրսներ
  • Անընդհատ բարձր հաճախականության հավաքագրումը ստեղծում է մեծ գրանցամատյանների ֆայլեր

Ազդեցությունը նվազագույնի հասցնելու համար.

  • Հետևեք միայն անհրաժեշտ հաշվիչներին
  • Օգտագործեք համապատասխան նմուշառման ժամանակահատվածներ (60 վայրկյան՝ սովորական մոնիթորինգի համար):
  • Պահպանեք գրանցամատյանները սկավառակների վրա՝ տվյալների բազայի ֆայլերից առանձին
  • Պլանավորեք ռեսուրսների ինտենսիվ մոնիթորինգ ոչ գագաթնակետային ժամերին

17.5 Որքա՞ն ժամանակ պետք է պահպանեմ կատարողականի մոնիթորինգի տվյալները։

Պահպանումը կախված է ձեր վերլուծության կարիքներից և պահեստավորման ծավալից.

  • Նվազագույն: 3 ամիս՝ վերջին խնդիրների լուծման համար
  • Խորհուրդ է տրվում: 1-2 տարի՝ կարողությունների պլանավորման և միտումների վերլուծության համար
  • Օպտիմալ: Անորոշ ժամանակով, եթե պահեստավորումը թույլ է տալիս, քանի որ պատմական տվյալները ժամանակի ընթացքում ավելի արժեքավոր են դառնում

Արդյունավետության հաշվիչի տվյալները լավ են սեղմվում և զբաղեցնում են համեմատաբար քիչ տարածք: Խորհուրդ է տրվում հին տվյալները արխիվացնել առանձին պահեստում, այլ ոչ թե ջնջել դրանք: Շատ կազմակերպություններ նկատում են, որ տարիների պատմական տվյալները անգնահատելի են հզորությունների պլանավորման և երկարաժամկետ միտումները բացահայտելու համար:

17.6 Որո՞նք են հիմնական կատարողականության հաշվիչների համար լավ շեմային արժեքները։

Ահազանգման համար առաջարկվող շեմային արժեքներ՝

  • Հիշողության տրամադրման ժամկետը սպառվում է. Զգուշացում, երբ > 0
  • Էջի կյանքի տևողություն. Զգուշացում, երբ < 300 վայրկյան
  • Պրոցեսորի ժամանակի տոկոս. Զգուշացում, երբ > 80% է 5 րոպեի ընթացքում
  • Պրոցեսորի հերթի երկարություն. Զգուշացում, երբ յուրաքանչյուր միջուկի համար > 2 է
  • Միջին սկավառակի վայրկյան/կարդալ կամ գրել. Զգուշացում, երբ > 20 մվ
  • Սկավառակի հերթի երկարություն. Զգուշացում, երբ սկավառակի վրա > 2 է
  • Արգելափակված գործընթացներ. Զգուշացում, երբ > 5

Կարգավորեք այս շեմերը՝ հիմնվելով ձեր բազային տվյալների և աշխատանքային ծանրաբեռնվածության որոշակի բնութագրերի վրա: Մեկ միջավայրի համար նորմալը կարող է խնդիրներ ցույց տալ մեկ այլ միջավայրում:

17.7 Ինչպե՞ս վերահսկեմ SQL Server հեռակա կատարումը՞

Մոնիտորի հեռակառավարիչ SQL Server Այս մեթոդները կիրառող դեպքեր՝

  1. Արդյունավետության մոնիտոր՝ Հաշվիչներ ավելացնելիս նշեք հեռակա համակարգչի անունը
  2. PowerShell: Օգտագործեք -ComputerName պարամետրը Get-Counter-ի հետ միասին
  3. DMV-ներ՝ Միացեք հեռակա սերվերներին SSMS-ի միջոցով և հարցումներ ուղարկեք DMV-ներին
  4. Երրորդ կողմի գործիքներ. Մոնիթորինգի գործիքների մեծ մասը աջակցում է հեռակա սերվերի մոնիթորինգին

Համոզվեք, որ firewall-ի կանոնները թույլատրում են Performance Monitor-ի երթևեկությունը, և որ դուք ունեք համապատասխան թույլտվություններ հեռակա սերվերի վրա: Բազմակի սերվերների դեպքում դիտարկեք կենտրոնացված մոնիթորինգի իրականացումը՝ նվիրված մոնիթորինգի սերվերի և տվյալների բազայի միջոցով:

17.8 Ո՞րն է լավագույն անվճար գործիքը SQL Server կատարողականի մոնիտոր?

Մոնիթորինգի համար հասանելի են մի քանի գերազանց անվճար գործիքներ SQL Server կատարումը:

  • Windows-ի աշխատանքի մոնիտոր. Ներկառուցված, համապարփակ և հուսալի
  • SSMS գործունեության մոնիտոր՝ Իրական ժամանակի մոնիթորինգ՝ առանց լրացուցիչ տեղադրման
  • Ընդլայնված միջոցառումներ՝ Թեթև միջոցառումների մոնիթորինգը ներկառուցված է SQL Server
  • sp_WhoIsActive: Հանրաճանաչ անվճար պահեստավորված ընթացակարգ՝ մանրամասն գործունեության մոնիթորինգի համար
  • DBA Dash: Բաց կոդով մոնիթորինգի գործիք՝ համապարփակ գործառույթներով
  • SQLWATCH: Բաց կոդով՝ գրեթե իրական ժամանակում մոնիթորինգի հնարավորություններով

Կազմակերպությունների մեծ մասի համար Performance Monitor-ը, զուգորդված SSMS գործիքների և sp_WhoIsActive-ի հետ, ապահովում է գերազանց մոնիթորինգի հնարավորություններ՝ առանց լրացուցիչ ծախսերի։

17.9 Ինչպե՞ս արտահանել PerfMon տվյալները վերլուծության համար։

Արտահանեք Performance Monitor-ի տվյալները՝ օգտագործելով հետևյալ մեթոդները՝

Արտահանել CSV ձևաչափով՝

  1. Բացեք Performance Monitor-ը՝ բեռնված գրանցամատյանի ֆայլով
  2. Գրաֆիկի վրա սեղմեք աջ կոճակը և ընտրեք Պահպանել տվյալները որպես
  3. Ընտրել Տեքստային ֆայլ (ստորակետերով բաժանված) (.csv)
  4. Ընտրեք տեղանքը և պահպանեք
  5. Բացեք Excel-ում վերլուծության համար

Օգտագործեք Relog հրամանը՝

relog input.blg -f csv -o output.csv

Այս հրամանատողի գործիքը փոխակերպում է երկուական գրանցամատյանի ֆայլերը (.blg) CSV ձևաչափի՝ աղյուսակային ծրագրերում վերլուծության ավելի հեշտացման համար:

17.10 Ե՞րբ պետք է օգտագործեմ երրորդ կողմի մոնիթորինգի գործիքներ՝ ներկառուցված տարբերակների փոխարեն։

Դիտարկեք երրորդ կողմի գործիքները, երբ՝

  • Մեծ թվով կառավարում SQL Server դեպքեր (10+)
  • Պահանջվում է կենտրոնացված մոնիթորինգ բազմաթիվ տվյալների կենտրոններում
  • Անհրաժեշտ են առաջադեմ գործառույթներ, ինչպիսիք են կանխատեսողական վերլուծությունը կամ անոմալիաների հայտնաբերումը
  • Ցանկանում եք ինտեգրված ահազանգում միջադեպերի կառավարման համակարգերի հետ
  • Համապատասխանության մասին հաշվետվությունների և պատմական վերլուծության պահանջ
  • DBA ռեսուրսների պակաս՝ հատուկ լուծումներ կառուցելու և պահպանելու համար
  • Հետերոգեն տվյալների բազայի միջավայրերի մոնիթորինգ (SQL Server, Oracle, MySQL և այլն)

Ներկառուցված գործիքները լավ են աշխատում փոքր միջավայրերի համար կամ երբ ունեք հմուտ տվյալների բազային կառավարիչներ, որոնք կարող են մշակել անհատական ​​մոնիթորինգի լուծումներ: Երրորդ կողմի գործիքները արժեք են ապահովում ժամանակի խնայողության, առաջադեմ գործառույթների և մասնագիտական ​​աջակցության միջոցով:

18. Լրացուցիչ ռեսուրսներ

18.1 Պաշտոնական փաստաթղթեր

Microsoft-ը տրամադրում է լայնածավալ փաստաթղթեր SQL Server կատարողականի մոնիտոր՝

18.2 Առաջարկվող գործիքներ և ներբեռնումներ

Հիմնական գործիքների համար SQL Server կատարողականի մոնիտոր՝

  • PAL գործիք՝ https://github.com/clinthuffman/PAL
  • sp_WhoIsActive: http://whoisactive.com/
  • DBA Dash: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Առաջին արձագանքման հավաքածու (Բրենտ Օզար): https://www.brentozar.com/first-aid/
  • SQL Server Կառավարման ստուդիա. https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Համայնքային ռեսուրսներ

Սովորեք SQL Server համայնք:

  • SQL Server Central: https://www.sqlservercentral.com/
  • Բրենտ Օզարի բլոգը. https://www.brentozar.com/blog/
  • SQL Շաք։ https://www.sqlshack.com/
  • MSSQL-ի խորհուրդներ՝ https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Բլոկի արտահոսք SQL Server պիտակ: https://stackoverflow.com/questions/tagged/sql-server

Այս ռեսուրսները տրամադրում են ձեռնարկներ, խնդիրների լուծման խորհուրդներ և փորձառու մասնագետների լավագույն փորձը։ SQL Server մասնագետներ։ Համայնքային ֆորումներին մասնակցելը կօգնի ձեզ սովորել ուրիշների փորձից և կիսվել ձեր սեփական գիտելիքներով։


Հեղինակի մասին

Յուան Շենգ տվյալների բազայի ավագ ադմինիստրատոր (DBA) է՝ ավելի քան 10 տարվա փորձով։ SQL Server միջավայրերի և ձեռնարկությունների տվյալների բազայի կառավարման ոլորտում: Նա հաջողությամբ լուծել է տվյալների բազայի վերականգնման հարյուրավոր սցենարներ ֆինանսական ծառայությունների, առողջապահության և արտադրական կազմակերպություններում:

Յուանը մասնագիտանում է SQL Server տվյալների բազայի վերականգնում, բարձր մատչելիության լուծումներև կատարողականի օպտիմալացում: Նրա լայնածավալ գործնական փորձը ներառում է բազմաբայթ ծավալով տվյալների բազաների կառավարում, իրականացում Միշտ հասանելիության խմբեր, և մշակելով ավտոմատացված պահուստավորման և վերականգնման ռազմավարություններ կարևորագույն բիզնես համակարգերի համար։

Իր տեխնիկական փորձագիտության և գործնական մոտեցման միջոցով Յուանը կենտրոնանում է համապարփակ ուղեցույցներ ստեղծելու վրա, որոնք կօգնեն տվյալների բազայի ադմինիստրատորներին և ՏՏ մասնագետներին լուծել բարդ խնդիրներ։ SQL Server արդյունավետորեն մարտահրավերներ է նետում։ Նա տեղեկացված է մնում վերջին նորություններից SQL Server թողարկումները և Microsoft-ի զարգացող տվյալների բազայի տեխնոլոգիաները, պարբերաբար փորձարկելով վերականգնման սցենարները՝ համոզվելու համար, որ նրա առաջարկությունները արտացոլում են իրական աշխարհի լավագույն փորձը։

Հարցեր ունեք SQL Server Վերականգնո՞ւմ, թե՞ անհրաժեշտ է տվյալների բազայի խնդիրների լուծման լրացուցիչ ուղեցույց: Յուանը ողջունում է ձեզ: արձագանքներ և առաջարկություններ այս տեխնիկական ռեսուրսները բարելավելու համար։

Կիսվել հիմա ՝