Bendrinti dabar:
Turinys paslėpti

1. Įvadas į SQL Server Našumo stebėjimas

1.1 Kas yra SQL Server Našumo monitorius?

SQL Server Našumo stebėjimas – tai jūsų įrenginio našumo ir sveikatos stebėjimo, analizės ir valdymo procesas. SQL Server duomenų bazės. Tai apima duomenų apie įvairius jūsų duomenų bazės sistemos aspektus rinkimą ir interpretavimą, siekiant užtikrinti optimalų našumą, užkirsti kelią problemoms ir palaikyti duomenų bazės būklę.

Našumo stebėjimas apima užklausų vykdymo laiko, išteklių panaudojimo, indekso našumo, blokavimo ir aklavietės bei duomenų bazės augimo tendencijų stebėjimą. Ši nuolatinė priežiūra padeda administratoriams nustatyti galimas problemas, kol jos nepaveikė naudotojų ar verslo operacijų.

1.2 Pagrindiniai veiklos stebėjimo privalumai

Veiksmingas SQL Server Našumo monitorius suteikia keletą svarbių privalumų:

  • Proaktyvus problemų aptikimas: Nustatykite ir spręskite galimas problemas, kol jos nepaveiks naudotojų ar verslo operacijų
  • Našumo optimizavimas: Nustatykite kliūtis ir neefektyvumą, kad pagerintumėte bendrą duomenų bazės našumą
  • Pajėgumų planavimas: Prognozuokite išteklių poreikius ir planuokite būsimą augimą, remdamiesi istoriniais duomenimis
  • Atitiktis ir saugumas: Užtikrinti norminių reikalavimų laikymąsi ir aptikti įtartiną veiklą

1.3 Dažni našumo iššūkiai

Neturėdamos tinkamo SQL duomenų bazės našumo stebėjimo, organizacijos susiduria su keliomis rizikomis:

  • Netikėtas prastovos laikas, sutrikdantis verslo veiklą
  • Prastas programos našumas, turintis įtakos vartotojo patirčiai
  • Duomenų praradimas arba sugadinimas
  • Neefektyvus išteklių naudojimas, dėl kurio susidaro nereikalingos išlaidososts
  • Nusivylę vartotojai ir galimi pajamų praradimai

Remiantis 2023 m. IDC tyrimu, 65 % duomenų bazių našumo problemų kyla dėl prastos stebėjimo ar optimizavimo praktikos.

2. „Windows“ našumo monitoriaus („PerfMon“) supratimas

2.1 Kas yra „Windows“ našumo monitorius?

„Windows Performance Monitor“ („PerfMon“) yra integruota „Windows“ priemonė, kuri stebi sistemos išteklius ir programų našumą. SQL Server administratoriams „PerfMon“ suteikia neįkainojamų įžvalgų tiek apie operacinę sistemą, tiek SQL Server metrikos, todėl tai būtina atliekant išsamią našumo analizę.

„Windows“ našumo monitorius („PerfMon“)

„PerfMon“ reguliariais intervalais matuoja našumo statistiką ir išsaugo šią statistiką failuose vėlesnei analizei. Duomenų bazių administratoriai gali pasirinkti laiko intervalą, failo formatą ir kurią statistiką stebėti. Įrankis nėra... SQL Server-specifinis – sistemos administratoriai jį naudoja stebėti pačią „Windows“, „Exchange“, failų serverius ir bet kurią programą, kurioje gali kilti kliūčių.

2.2 Našumo monitoriaus paleidimas

„Performance Monitor“ galite paleisti keliais būdais:

  1. Spauskite Start, įveskite perfmon Paieškos laukelyje spustelėkite „Performand Monitor“ paieškos rezultatuose:
    Paieška ir star„PerfMon“ iš „Windows“ paieškos laukelio.
  2. spauda "Windows + R, įveskite perfmonir paspauskite įeiti
    Star„PerfMon“ iš „Windows“ paleidimo lango.
  3. Eikite į valdymo pultas -> Sistema ir sauga -> Administrative Tools -> Našumo stebėjimas
    Star„PerfMon“ iš valdymo skydo -> Sistema ir sauga -> Administravimo įrankiai -> Našumo monitorius

3. esminis SQL Server Našumo skaitikliai

3.1 Atminties našumo skaitikliai

Atminties skaitikliai yra labai svarbūs stebėjimui SQL Server našumą, nes jie rodo, ar jūsų duomenų bazėje yra pakankamai atminties išteklių.

Galimi MBai

Šis skaitiklis rodo fizinės atminties kiekį, kurį galima nedelsiant paskirstyti. Jis turėtų išlikti gana pastovus ir idealiu atveju neviršyti 4096 MB. Mažos vertės gali reikšti, kad SQL Servermaksimalios atminties nustatymas paliekamas pagal numatytuosius nustatymus arba neSQL Server programos naudoja atmintį.

Puslapio gyvenimo trukmė

Puslapio gyvavimo trukmė (puslapio gyvavimo trukmė) matuoja, kiek laiko (sekundėmis) puslapis išbūna buferio telkinyje be nuorodos į jį. Įprasta vertė yra 300 sekundžių ar daugiau. Mažesnės vertės rodo atminties spaudimą ir per didelę buferio apyvartą, dėl kurios sumažėja talpyklos efektyvumas.

Buferio talpyklos pataikymo santykis

Šis skaitiklis rodo duomenų užklausų, atsakytų naudojant SQL buferio talpyklą (atmintį), o ne skaitant iš disko, procentą. Paprastai jis siekia arba viršija 99 %. Mažesnės vertės rodo, kad SQL Server reikia daugiau atminties arba vis dar šyla po pakartotinio įjungimotart.

Laukiama atminties dotacijų

Tai rodo procesų, laukiančių atminties, skaičių. SQL ServerĮprastomis sąlygomis ši reikšmė turėtų būti nuolat 0. Didesnės reikšmės rodo nepakankamą atminties paskirstymą. SQL Server.

Targauti serverio atmintį ir bendrą serverio atmintį

Tar„get Server Memory“ nurodo idealų atminties kiekį SQL Server nori naudoti. Bendra serverio atmintis rodo, kiek SQL Server šiuo metu naudoja. Šių verčių santykis turėtų būti maždaug 1. Reikšmingi skirtumai gali rodyti atminties trūkumą arba nepakankamą laisvą atmintį.

3.2 Procesoriaus našumo skaitikliai

CPU skaitikliai padeda nustatyti procesoriaus kliūtis ir suprasti, kaip jos veikia. SQL Server naudoja skaičiavimo išteklius.

Procesoriaus laikas (%)

Tai matuoja praėjusio laiko procentą, kurį procesorius praleidžia vykdydamas neveikliąsias gijas. Aktyviuose serveriuose vertės gali išaugti iki 100 %, tačiau nuolatinis naudojimas virš 70–75 % paprastai rodo vartotojų našumo problemas. Trūkstami arba nepakankami indeksai dažnai sukelia didelį procesoriaus apkrovimą.

Privilegijuoto laiko %

Procesoriaus laikas yra padalintas į vartotojo režimą ir privilegijuotą (branduolio) režimą. Visa prieiga prie disko ir įvesties/išvesties operacijos atliekamos branduolio režimu. Jei šis skaitiklis viršija 25 %, sistema greičiausiai atlieka per daug įvesties/išvesties operacijų. Normalios vertės svyruoja nuo 5 % iki 10 %.

Procesoriaus eilės ilgis

Šis skaitiklis rodo gijas, laukiančias procesoriaus išteklių. Reikšmės, nuolat viršijančios 1 (išskyrus SQL Server atsarginės kopijos glaudinimas) rodo procesoriaus apkrovą. Tai dažnai reiškia, kad įrenginyje įdiegtos kitos programos SQL Server mašina, kuri pažeidžia geriausią praktiką.

Konteksto perjungimai/sek.

Tai matuoja, kaip dažnai procesorius perjungia gijas. Per dažnas konteksto perjungimas gali paveikti našumą ir rodo didelę sistemos apkrovą.

3.3 Disko įvesties/išvesties našumo skaitikliai

Disko skaitikliai yra būtini SQL našumo stebėjimui, nes disko įvestis/išvestis dažnai tampa pagrindine duomenų bazių sistemų kliūtimi.

% Disko laikas

Tai įrašo laiko procentą, kurį diskas buvo užimtas skaitymo / rašymo operacijomis. Vertės, nuolat viršijančios 85 %, rodo įvesties / išvesties kliūtį. Kadangi diskas yra daug lėtesnis nei atmintis, šio rodiklio sumažinimas pagerina našumą.

Vid. disko trukmė (sek.) / skaitymas ir vid. disko trukmė (sek.) / įrašymas

Šie skaitikliai matuoja vidutinį skaitymo ir rašymo operacijų laiką (sekundėmis). Jei vidutinės vertės viršija 10–20 ms, diskas apdoroja duomenis per ilgai. Operacijų žurnalų diskams reikalingas ypač didelis rašymo našumas.

Disko eilės ilgis

Tai rodo neįvykdytas skaitymo / rašymo į diską užklausas. Jei vertės nuolat viršija 2 (arba 2 vienam diskui RAID masyvų atveju), tai reiškia, kad diskas negali įvykdyti įvesties / išvesties užklausų.

Disko baitai/sek

Tai stebi duomenų perdavimo į diską ir iš jo greitį. Jei jis viršija vardinę disko talpą, duomenys pradeda kauptis, tai rodo didėjantis disko eilės ilgis.

Disko perkėlimas/sek

Tai seka diske atliktų skaitymo / rašymo operacijų skaičių. SQL Server Duomenų prieiga paprastai yra atsitiktinė, o tai yra lėtesnė dėl disko galvutės judėjimo. Įsitikinkite, kad ši vertė neviršija maksimalaus jūsų disko įrenginio pajėgumo (paprastai 100/s standartiniams diskams).

3.4 SQL Server Specifiniai skaitikliai

3.4.1 Buferio tvarkyklės skaitikliai

Buferio tvarkyklės skaitiklių stebėjimas SQL Serveratminties buferio operacijos:

  • Puslapio perskaitymai/sek.: Bendras fizinės duomenų bazės puslapių nuskaitymų skaičius
  • Puslapio rašymas/sek.: Bendras fizinės duomenų bazės puslapio įrašų skaičius
  • Tingus rašo/sek.: Buferių, įrašytų naudojant tingųjį rašytoją, skaičius atminčiai atlaisvinti
  • Kontrolinio taško puslapiai/sek.: Kontrolinio taško ar kitų operacijų, reikalaujančių išvalyti visus nešvarius puslapius, išvalyti puslapiai

3.4.2 SQL statistikos skaitikliai

Šie skaitikliai suteikia įžvalgų apie SQL Server užklausų apdorojimas:

  • Paketinės užklausos/sek.: Serverio gautų SQL paketinių užklausų skaičius. Tai yra serverio aktyvumo etalonas.
  • SQL kompiliacijos/sek.: SQL kompiliacijų skaičius. Turėtų būti 10 % arba mažiau nuo bendro paketinių užklausų skaičiaus per sekundę.
  • SQL pakartotiniai kompiliavimai/sek.: SQL pakartotinių kompiliacijų skaičius. Taip pat turėtų būti 10 % arba mažiau nuo bendro paketinių užklausų skaičiaus per sekundę.

3.4.3 Bendrieji statistikos skaitikliai

  • Vartotojo ryšiai: Prie sistemos prisijungusių vartotojų skaičius. Naudojamas kaip etalonas ryšio augimui laikui bėgant stebėti.
  • Užblokuoti procesai: Dabartinis užblokuotų procesų skaičius. Idealiu atveju turėtų būti 0

3.4.4 Atminties tvarkyklės skaitikliai

  • Laukiami atminties leidimai: Bendras procesų, laukiančių, kol bus suteikta darbo srities atmintis, skaičius. Idealiu atveju turėtų būti 0.

4. Našumo monitoriaus nustatymas SQL Server(„Windows Vista“ / „Server 2008“ ir naujesnės versijos)

Pirmiausia turime sukurti konteinerį, kad būtų lengviau valdyti skaitiklius:

  • „Windows Vista“ / „Server 2008“ ir naujesnėse versijose šiame skyriuje galite kurti duomenų rinkėjų rinkinius.
  • „Windows XP“ / „Server 2003“ ir ankstesnėse versijose galite kurti skaitiklių žurnalus kitą skyrių.

4.1 Kas yra duomenų rinkėjų rinkiniai?

Duomenų rinkimo rinkiniai tvarko našumo skaitiklius, įvykių sekimo duomenis ir sistemos konfigūracijos informaciją į vieną rinkimo vienetą. Jie suteikia daugiau lankstumo nei paprasti skaitiklių žurnalai ir leidžia automatiškai, suplanuotai rinkti duomenis, kad būtų galima visapusiškai stebėti SQL duomenų bazės našumą.

4.2 Duomenų rinkimo rinkinio kūrimas

Sukurkite pasirinktinį duomenų rinkimo rinkinį stebėjimui SQL Server našumo skaitikliai:

  1. Atidaryti našumo monitorių
  2. Plėsti Duomenų rinktuvų rinkiniai
  3. Dešiniuoju pelės mygtuku spustelėkite Vartotojo apibrėžta
  4. pasirinkti Naujienos -> Duomenų rinktuvo rinkinys
    Sukurkite naują duomenų rinkėjų rinkinį „PerfMon“
  5. Įveskite aprašomąjį pavadinimą (pvz., „SQL Server Našumo metrika“)
  6. pasirinkti Kurti rankiniu būdu (išplėstinė)
    Nustatykite duomenų rinkimo rinkinio aprašomąjį pavadinimą
  7. Spauskite Sekantis
  8. Atrask Duomenų žurnalų kūrimas -> Našumo skaitiklis
    Vedlyje „Kurti duomenų žurnalus“ pasirinkite „Kurti duomenų žurnalus“ -> „Našumo skaitiklis“.
  9. Spauskite Sekantis
  10. Spauskite papildyti pasirinkti skaitiklius
  11. papildyti norimą SQL Server ir sistemos skaitikliai.
    Į naują duomenų rinkimo priemonių rinkinį įtraukite našumo skaitiklius.
  12. Nustatyti Mėginių intervalas
    • Įprastam stebėjimui naudokite 1 minutę (60 sekundžių)
    • Aktyviam trikčių šalinimui naudokite 15–30 sekundžių
    • Venkite ilgalaikių dažnų duomenų fiksavimų, nes jie gali paveikti našumą ir generuoti per daug duomenų.

    Naujame duomenų rinkimo rinkinio vedlyje nustatykite mėginių ėmimo intervalą.

  13. Spauskite Sekantis
  14. Pasirinkite vietą, kurioje norite išsaugoti žurnalus
    Naujame duomenų rinkimo rinkinio vedlyje nustatykite vietą, kurioje norite išsaugoti našumo duomenis.
  15. Spauskite apdaila, bus sukurtas naujas duomenų rinkimo priemonių rinkinys.
  16. Pagal numatytuosius nustatymus naujas duomenų rinkimo rinkinys bus nE būti starautomatiškai. Jį reikia rasti kairiajame skydelyje, po spektaklis -> Duomenų rinktuvų rinkiniai -> Vartotojo apibrėžta -> Jūsų duomenų rinkėjas, spustelėkite jį dešiniuoju pelės mygtuku ir pasirinkite Start
    Starnaujas duomenų rinkėjų rinkinys „PerfMon“ sistemoje.

4.3 Pagrindiniai skaitikliai, kuriuos reikia pridėti

  • Atmintis -> Turimi MB
  • Fizinis diskas -> Vid. disko sek./skaitymas (visi egzemplioriai, išskyrus _Iš viso)
  • Fizinis diskas -> Vid. disko sek./įrašymo laikas (visi egzemplioriai, išskyrus _Iš viso)
  • Fizinis diskas -> Disko skaitymai/sek. (visi egzemplioriai, išskyrus _Total)
  • Fizinis diskas -> Įrašų skaičius diske/sek. (visi egzemplioriai, išskyrus _Total)
  • Procesorius -> Procesoriaus laiko procentas (visi egzemplioriai, išskyrus _Total)
  • SQLServer: Bendroji statistika -> Vartotojų ryšiai
  • SQLServer: Atminties tvarkyklė -> Laukiama atminties suteikimų
  • SQLServer: SQL statistika -> Paketinės užklausos/sek.
  • SQLServer: SQL statistika -> SQL kompiliacijos/sek.
  • SQLServer: SQL statistika -> SQL pakartotiniai kompiliavimai/sek.
  • Sistema -> Procesoriaus eilės ilgis

4.4 Stabdymo sąlygų nustatymas

Konfigūruokite sustabdymo sąlygas, kad būtų išvengta neriboto duomenų augimo:

  1. Sukūrę duomenų rinkimo rinkinį, spustelėkite jį dešiniuoju pelės mygtuku ir pasirinkite Skelbimų
  2. Spustelkite Sustabdymo sąlyga kortelė
  3. Įjungti Bendra trukmė
  4. Nustatyti trukmę į 1 dieną (24 valandas)
  5. Spauskite OK sutaupyti

Nustatykite duomenų rinkimo rinkinio sustabdymo sąlygą

Tai užtikrina, kad žurnalas neauga per didelis ir automatiškai atnaujinamas.tarts, jei numatyta.

4.5 Duomenų rinkimo planavimas

Automatizuokite duomenų rinkimą, kad užtikrintumėte nuoseklų stebėjimą:

  1. Dešiniuoju pelės mygtuku spustelėkite savo duomenų rinkimo rinkinį ir pasirinkite Skelbimų
  2. Spustelkite Planuoti kortelė
  3. Spauskite papildyti sukurti naują tvarkaraštį
  4. Konfigūruoti stardata ir laikas
  5. Nustatyti pasikartojimo modelį (pvz., kasdien)
  6. Spauskite OK norint išsaugoti tvarkaraštį

Nustatykite duomenų rinkimo rinkinio tvarkaraštį

Automatiniam starNorėdami tai padaryti, sukonfigūruokite duomenų rinkimo rinkinį į start kai serveris paleidžiamas sukuriant kaiptar„tup“ paleidiklis „Windows“ užduočių planuoklėje.

5. Našumo monitoriaus nustatymas SQL Server(„Windows XP“ / „Server 2003“ ir ankstesnės versijos)

„Windows XP“ / „Server 2003“ ir ankstesnėse versijose galite kurti skaitiklių žurnalus, kurie leidžia pasirinkti našumo skaitiklių rinkinį ir periodiškai juos registruoti faile.

5.1 Skaitiklių žurnalų kūrimas

Norėdami sukurti naują skaitiklio žurnalą, atlikite šiuos veiksmus:

  1. Atidaryti našumo monitorių
  2. Plėsti Veiklos Naujienos ir įspėjimai kairiojoje srityje
  3. Dešiniuoju pelės mygtuku spustelėkite Skaitliukų žurnalai
  4. pasirinkti Nauji žurnalo nustatymai
  5. Žurnalo pavadinimą suteikite savo duomenų bazės serverio pavadinimui (pvz., „ProductionSQL01“)
  6. Spauskite OK pradėti konfigūraciją

Sukūrus atskirus skaitiklių žurnalus kiekvienam serveriui, galima patikrinti našumą atskiruose serveriuose, nerenkant duomenų iš visų serverių vienu metu.

5.2 Našumo skaitiklių pridėjimas

Sukūrę skaitiklių žurnalą, pridėkite konkrečius našumo skaitiklius, kuriuos norite stebėti:

  1. Spustelkite Pridėti skaitiklius mygtukas
  2. Pakeiskite kompiuterio pavadinimą, kad jis rodytų į jūsų SQL Server pavyzdys
  3. spauda Kortelė norint įkelti galimus našumo objektus
  4. Išskleidžiamajame sąraše pasirinkite našumo objektą (pvz., atmintis)
  5. Pasirinkite konkrečius skaitiklius iš sąrašas
  6. Pasirinkite atvejus, jei taikomacabfailai (pvz., atskiri procesoriai arba diskai)
  7. Spauskite papildyti įtraukti skaitiklį
  8. Pakartokite su visais norimais skaitikliais
  9. Spauskite arti kai baigs

5.3 Mėginių intervalų konfigūravimas

Imčių intervalas nustato, kaip dažnai „Performance Monitor“ renka duomenis. Konfigūruokite tinkamus intervalus pagal savo stebėjimo poreikius:

  1. Skaitiklio žurnalo ypatybėse raskite Imties duomenys kas
  2. Nustatykite intervalą (numatytasis yra 15 sekundžių)
  3. Pradiniam stebėjimui naudokite 1 minutės intervalus kasdieniam duomenų rinkimui
  4. Trikčių šalinimui naudokite 15–30 sekundžių intervalus trumpiems impulsams
  5. Spauskite OK taikyti

Atminkite, kad mažesni intervalai generuoja daugiau duomenų, kuriuos gali būti sunkiau pateikti ir analizuoti. Didesni intervalai gali praleisti svarbius duomenų šuolius. Suderinkite duomenų detalumą su saugojimo ir analizės reikalavimais.

5.4 Žurnalų failų konfigūravimas

Tinkama žurnalo failo konfigūracija užtikrina, kad duomenys būtų saugomi efektyviai ir lengvai prieinami:

  1. Spustelkite Žurnalo failai (Log files) skirtukas skaitiklio žurnalo ypatybėse
  2. Pakeisti žurnalo failo tipą į Tekstinis failas (atskirtas kableliais) lengvam importavimui iš „Excel“
  3. Spauskite Nustatyti
  4. Nustatykite failo kelią į tam skirtą vietą (pvz., bendrinamą „PerformanceLogs“ aplanką)
  5. Spauskite OK patvirtinti

Žurnalų saugojimui naudokite tinkle pasiekiamą bendrinamą aplanką, kad galėtumėte nuotoliniu būdu pasiekti failus ir bendrinti juos su kitais vartotojais.

5.5 Prisijungimo duomenų nustatymas

Sukonfigūruokite tinkamus kredencialus, kad „Performance Monitor“ galėtų pasiekti nuotolinę prieigą SQL Server atvejai:

  1. Skaitiklio žurnalo ypatybėse raskite Bėk kaip
  2. Įveskite savo domeno vartotojo vardą tokiu formatu: DOMENAS\vartotojo vardas
  3. Spauskite Nustatyti slaptažodį
  4. Įveskite ir patvirtinkite slaptažodį
  5. Spauskite OK sutaupyti

Tai leidžia „PerfMon“ paslaugai rinkti statistiką naudojant jūsų domeno teises, o ne savo prisijungimo duomenis.

6. Našumo stebėjimo duomenų analizė

6.1 Žurnalų failų peržiūra našumo monitoriuje

„Performance Monitor“ gali rodyti istorinius duomenis iš išsaugotų žurnalų failų:

  1. Atidaryti našumo monitorių
  2. Kairiojoje srityje spustelėkite Stebėjimo priemonės -> Našumo stebėjimas.
  3. Dešiniuoju pelės mygtuku spustelėkite bet kurioje grafiko srities vietoje
  4. pasirinkti Skelbimų
    Atidarykite „PerfMon“ ypatybes dešiniuoju pelės mygtuku spustelėdami bet kurią grafiko srities vietą.
  5. Spustelkite Šaltinis kortelė
  6. pasirinkti Žurnalo failai radijo mygtukas
  7. Spauskite papildyti
  8. Eikite į savo žurnalo failą (.blg arba .csv)
  9. Pasirinkite failą ir spustelėkite Atviras
    Nustatykite žurnalo failą kaip grafikos šaltinį „PerfMon“ sistemoje.
  10. Naudokite Laiko intervalas slankiklį, kad pasirinktumėte laikotarpį, kurį norite analizuoti
  11. Spauskite OK , kad uždarytumėte ypatybių dialogo langą
  12. Spustelėkite žalią pliuso piktogramą, kad pridėtumėte skaitiklius iš žurnalo failo
    Spustelėkite žalią pliuso piktogramą, kad pridėtumėte skaitiklius iš žurnalo failo „PerfMon“ įrankyje.
  13. Pasirinkite norimus rodyti skaitiklius
    Pridėkite norimus skaitiklius prie „PerfMon“ grafiko.
  14. Spauskite OK

Dabar grafike bus rodomi istoriniai žurnalo failo duomenys. Norėdami susiaurinti konkrečius laikotarpius išsamiai analizei, naudokite laiko intervalo slankiklį „Ypatybės“.

6.2 Duomenų eksportavimas į „Excel“

„Excel“ teikia galingas našumo skaitiklių duomenų analizės galimybes:

  1. Atidarykite našumo monitorių su įkeltu žurnalo failu
  2. Dešiniuoju pelės mygtuku spustelėkite bet kurioje grafiko srities vietoje
  3. pasirinkti Įrašyti duomenis kaip
  4. Pasirinkite failo vietą
  5. pasirinkti Tekstinis failas (atskirtas kableliais) (.csv) iš išskleidžiamojo meniu
  6. Spauskite Sutaupote
  7. Atidarykite CSV failą programoje „Excel“

Eksportuokite duomenis į failą programoje „PerfMon“.

Formatuokite eksportuotus duomenis geresnei analizei:

  1. Ištrinkite pusiau tuščią 2 eilutę ir išvalykite langelį A1
  2. Formatuoti A stulpelį kaip datą/laiką
  3. Formatuokite skaitinius stulpelius su nuliais po kablelio ir tūkstančių skirtuku
  4. Rasti ir pakeisti serverių pavadinimus antraštėse (pvz., „\\SERVERIO PAVADINIMAS“ pakeisti tuščiu laukeliu)
  5. Išvalyti objektų pavadinimus antraštėse (pvz., „Atmintis“, „Fizinis diskas“, „Procesorius“)
  6. Sumažinkite antraštės šrifto dydį iki 8 taškų, kad būtų geriau matomas

6.3 Skaitiklių verčių interpretavimas

6.3.1 Atminties skaitiklio analizė

Analizuodami atminties skaitiklius, atkreipkite dėmesį į šiuos rodiklius:

  • Turimi MB: Turėtų nuolat išlikti virš 4096 MB
  • Puslapio gyvenimo trukmė: Vertės, viršijančios 300 sekundžių, rodo gerą atmintį. Mažesnės vertės rodo atminties spaudimą.
  • Buferio talpyklos pataikymo santykis: Turėtų pasiekti arba viršyti 99 %. Mažesnės vertės rodo per didelį disko nuskaitymų skaičių.
  • Laukiami atminties leidimai: Visada turėtų būti 0. Bet kokia teigiama reikšmė rodo atminties kiekį.tarėmimas

6.3.2 CPU skaitiklio analizė

CPU našumo rodikliai apima:

  • Procesoriaus laikas (%): Nuolatinis naudojimas virš 75 % rodo našumo problemas. Padidėjimas iki 100 % yra normalu, bet neturėtų tęstis.
  • Procesoriaus eilės ilgis: Reikšmės, didesnės nei 1, rodo procesoriaus apkrovą. Patikrinkite užduočių tvarkytuvę, kad nustatytumėte, kurie procesai naudoja procesoriaus apkrovą.
  • Privilegijuoto laiko %: Turėtų išlikti tarp 5–10 %. Vertės, viršijančios 25 %, rodo per didelį įvesties / išvesties operacijų skaičių.

6.3.3 Disko skaitiklio analizė

Disko našumo ribos:

  • Vid. disko laikas (sek.) / skaitymas ir rašymas: Turėtų likti žemiau 10–20 ms. Didesnės vertės rodo lėtas disko posistemes.
  • Disko eilės ilgis: Nuolat didesnės nei 2 vertės (arba 2 kiekvienam diskui RAID sistemoje) rodo įvesties/išvesties kliūtis.
  • % Disko laikas: Nuolatinės vertės, viršijančios 85 %, rodo disko prisotinimą

6.4 Formulių ir statistikos naudojimas

Pridėkite statistines formules į „Excel“, kad galėtumėte greitai analizuoti:

  1. Įterpkite 7 tuščias eilutes skaičiuoklės viršuje
  2. Pridėti žymas A stulpelyje: Vidurkis, Mediana, Min., Maks., Standartinis nuokrypis
  3. Į langelį B2 įveskite: =AVERAGE(B9:B100) (nukreipkite langelį B100 į paskutinę duomenų eilutę)
  4. Langelyje B3 įveskite: =MEDIAN(B9:B100)
  5. Langelyje B4 įveskite: =MIN(B9:B100)
  6. Langelyje B5 įveskite: =MAX(B9:B100)
  7. Į langelį B6 įveskite: =STDEV(B9:B100)
  8. Kopijuoti formules visuose skaitiklio stulpeliuose
  9. Pasirinkite langelį B9 ir paspauskite Alt+W+F+Enter, kad užfiksuotumėte sritis

Ši statistika padeda nustatyti kiekvieno skaitiklio tendencijas, išskirtis ir įprastus veikimo diapazonus.

7. Žurnalų našumo analizės (PAL) įrankis

7.1 Įvadas į PAL

„Performance Analysis for Logs“ (PAL) yra nemokama Clinto Huffmano sukurta priemonė, kuri analizuoja „Performance Monitor“ žurnalus ir generuoja HTML ataskaitas su slenksčių analize. PAL lygina jūsų našumo duomenis su žinomais slenksčiais ir pateikia išsamias rekomendacijas. SQL Server našumo optimizavimas.

Atsisiųskite PAL iš „GitHub“ saugyklos: https://github.com/clinthuffman/PAL External Link

7.2 PAL nustatymas

Įdiekite PAL atlikdami šiuos veiksmus:

  1. Atsisiųskite PAL sąrankos failą iš „GitHub“
  2. Paleiskite diegimo programą
  3. Spauskite Sekantis pasveikinimo ekrane
  4. Peržiūrėkite ir sutikite su diegimo katalogu
  5. Spauskite Sekantis tęsti
  6. Spauskite įrengti pradėti diegti
  7. Palaukite, kol baigsis diegimas
  8. Spauskite apdaila

7.3 Žurnalų failų apdorojimas naudojant PAL

Analizuokite „Performance Monitor“ žurnalus naudodami PAL:

  1. Paleiskite PAL iš Start meniu arba diegimo katalogas
  2. Spustelkite Skaitliuko žurnalas kortelė
  3. Spauskite Naršyti kad pasirinktumėte .blg failą
  4. Eikite į savo našumo stebėjimo žurnalo failą
  5. Spauskite Atviras
  6. Spustelkite Slenksčio failas kortelė
  7. Išskleidžiamajame meniu pasirinkite slenksčio failą (pvz., „SQL Server 2016”)
  8. Spustelkite klausimai kortelė
  9. Atsakykite į klausimus apie savo sistemos konfigūraciją
  10. Nurodykite, ar jūsų SQL Server yra OLTP arba duomenų saugykla
  11. Įveskite bendrą laisvos RAM kiekį
  12. Spustelkite Išvesties parinktys kortelė
  13. Pasirinkite HTML ataskaitos išvesties katalogą
  14. Atrask HTML išvesties formatas
  15. Spustelkite Vykdyti kortelė
  16. Peržiūrėkite savo pasirinkimus
  17. Atrask Start vykdymas dabar
  18. Spauskite apdaila

7.4 PAL ataskaitų analizė

PAL baigus analizę, ji sugeneruoja HTML ataskaitą, kurioje yra:

  • Veiklos problemų santrauka
  • Išsami skaitiklių analizė su diagramomis
  • Slenksčio pažeidimai paryškinti spalva
  • Konkrečios rekomendacijos kiekvienam klausimui
  • Istorinės tendencijos ir modeliai

Ataskaitoje spalvų kodavimas nurodo problemų rimtumą: raudona spalva žymi kritines problemas, geltona – įspėjimus, o žalia – tinkamus rodiklius. Peržiūrėkite kiekvieną skyrių, kad suprastumėte našumo kliūtis ir vadovautumėtės PAL optimizavimo rekomendacijomis.

8. Alternatyva SQL Server Stebėjimo priemonės

8.1 Įmontuotas SQL Server Ištekliai

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor rodo realiuoju laiku informaciją apie SQL Server procesai ir našumas:

  1. Atviras SQL Server „Management Studio“ (SSMS) ir prisijunkite prie savo serverio egzemplioriaus
  2. Dešiniuoju pelės mygtuku spustelėkite serverio pavadinimą objektų naršyklėje
  3. pasirinkti Activity Monitor
    Start Veiklos monitorius SQL Server Vadybos studija.

Veiklos monitorius rodo procesus, išteklių laukimo laiką, duomenų failų įvesties / išvesties operacijas ir naujausias brangias užklausas. Jis suteikia greitų įžvalgų apie dabartinę duomenų bazės veiklą, bet nesaugo istorinių duomenų.

Veiklos monitorius SQL Server

8.1.2 SQL Server „Performance Dashboard“

SQL Server „Management Studio“ apima integruotas našumo ataskaitas:

  1. In SQL Server „Management Studio“ (SSMS), dešiniuoju pelės mygtuku spustelėkite SQL Server egzempliorius objektų naršyklėje
  2. pasirinkti Ataskaitos -> Standartinės ataskaitos
  3. Pasirinkite iš galimų ataskaitų, pvz. „Performance Dashboard“
    Atidaryti našumo suvestinę SQL Server Vadybos studija.

Našumo ataskaitų suvestinė pateikia vaizdines įžvalgas apie SQL Server egzemplioriaus našumą, įskaitant sistemos procesoriaus panaudojimą, dabartines laukiančias užklausas ir našumo metriką. Ją pasiekite per standartinių ataskaitų meniu.

Našumo ataskaitų suvestinė SQL Server Vadybos studija

8.1.3 SQL Server Profiler

SQL Server Profiler fiksuoja ir analizuoja SQL Server įvykiai, tokie kaip užklausų vykdymas, operacijų operacijos ir prisijungimo veikla.

Į start SQL Server profiliuotojas:

  1. In SQL Server Valdymo studija, spustelėkite Ištekliai -> SQL Server Profiler
    Start SQL Server Profileris SQL Server Vadybos studija.

Profiler sukuria dideles našumo išlaidas, todėl naudokite jį protingai ir geriausia ne piko valandomis. Most scenarijai, išplėstiniai įvykiai užtikrina geresnį našumą su mažesniu poveikiu.

SQL Server Profiler

8.1.4 Išplėstiniai įvykiai

Išplėstiniai įvykiai yra integruota lengva našumo stebėjimo sistema SQL Server. Jis pakeičia SQL Server Profiliatorius su geresniu našumu ir mažesnėmis sąnaudomis.

Pagrindinės funkcijos apima:

  • Tikslus konkrečių įvykių stebėjimas
  • Minimalus poveikis našumui
  • Pritaikomos renginių sesijos
  • Integracija su SSMS ir kitais įrankiais
  • Sudėtingo filtravimo ir agregavimo palaikymas

Kurkite išplėstinius įvykių seansus naudodami SSMS:

  1. In Objektų naršyklė, išplėskite savo serverį ir eikite į Valdymas -> Išplėstiniai renginiai -> Sesijos
  2. Dešiniuoju pelės mygtuku spustelėkite ant Posėdžiai Ir pasirinkti Naujo seanso vedlys
    Starnauja išplėstinių renginių sesija SQL Server Vadybos studija.
  3. Vykdykite instrukcijas, kadtarnauja sesija.

8.1.5 Dinaminio valdymo rodiniai (DMV)

DMV pateikia išsamią serverio būsenos informaciją, skirtą sveikatos stebėjimui, problemų diagnostikai ir našumo derinimui. Svarbiausi DMV apima:

  • sys.dm_exec_query_stats: Užklausos našumo statistika
  • sys.dm_os_wait_stats: Laukimo tipai, darantys įtaką serverio našumui
  • sys.dm_os_performance_counters: SQL Server našumo skaitiklio duomenys
  • sys.dm_exec_requests: Šiuo metu vykdomos užklausos
  • sys.dm_exec_sessions: Aktyvūs naudotojų seansai

Užklauskite šiuos rodinius naudodami T-SQL, kad pasiektumėte realaus laiko našumo duomenis ir istorinius rodiklius.

Pagrindinis naudojimas

-- 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 Trečiųjų šalių stebėjimo sprendimai

Redgate SQL monitorius

„Redgate SQL Monitor“ specializuojasi stebėjime SQL Server ir „Azure SQL“ duomenų bazių aplinkas. Ji teikia viso turto stebėjimą, pritaikomus įspėjimus ir ataskaitų suvestines, išsamias ataskaitų teikimo galimybes ir integraciją su kitais „Redgate“ įrankiais.

Redgate'as SQL Server monitorius

SolarWinds SQL Server Stebėjimo įrankis

Saulės vėjai SQL Server Stebėjimo įrankis, taip pat žinomas kaip SQL Sentry, skirtas diagnozuoti, išspręsti ir užkirsti kelią rimtoms našumo problemoms SQL Server.

SolarWinds SQL Server Stebėjimo įrankis

IDERA SQL Server Veiklos stebėjimo įrankis

IDERA SQL Diagnostic Manager yra galingas SQL Server našumo stebėjimo įrankis, skirtas padėti aktyviai stebėti našumą, diagnozuotiostics ir derinimas.

IDERA SQL Server Veiklos stebėjimo įrankis

Programų tvarkyklės SQL stebėjimas

Programų tvarkyklė siūlo „Microsoft“. SQL Server Stebėjimo įrankis, teikiantis naudingų IT sprendimų. Jis skirtas prižiūrėti SQL duomenų bazių veikimą, tuo pačiu metu nustatant klaidas ir sprendžiant problemas, dėl kurių gali būti sustabdyta organizacijos veikla.

Programų tvarkyklės SQL stebėjimas

8.3 Atvirojo kodo stebėjimo įrankiai

DBA brūkšnelis

„DBA Dash“ yra nemokama, atvirojo kodo stebėjimo priemonė, teikianti įžvalgų apie SQL Server sveikata, našumas ir aktyvumas. Tai ypač naudinga mažoms ir vidutinėms aplinkoms ir apima kasdienius DBA patikrinimus, našumo stebėjimą ir konfigūracijos sekimą.

SQLWATCH

SQLWATCH siūlo decentralizuotą, beveik realaus laiko SQL Server Stebėjimas su 5 sekundžių tikslumu, siekiant užfiksuoti darbo krūvio šuolius. Palaikoma „Grafana“ realaus laiko ataskaitų suvestinėms ir „Power BI“ išsamiai analizei. Įrankis siūlo plačias konfigūravimo parinktis, nereikalauja jokios priežiūros ir yra neribotai pritaikomas.

Operatorius

„Stack Exchange“ sukurtas „Opserver“ stebi kelias sistemas, įskaitant SQL Server, „Redis“ ir „Elasticsearch“. Ji teikia „visų serverių“ rodinį, kuriame pateikiama procesoriaus, atminties, tinklo ir aparatinės įrangos statistika visoje jūsų infrastruktūroje.

sp_WhoIsActive

„sp_WhoIsActive“ yra išsami veiklos stebėjimo saugoma procedūra, kurią sukūrė Adam Machanic. Ji veikia su visais SQL Server versijos nuo 2005 m. iki dabartinių leidimų ir yra plačiai naudojamos SQL Server DBA, skirti veiklos stebėjimui realiuoju laiku.

Norėdami naudoti „sp_WhoIsActive“, atsisiųskite jį iš http://whoisactive.com/, įdiekite į savo duomenų bazę ir vykdykite:

EXEC sp_WhoIsActive

Procedūra rodo šiuo metu vykdomas užklausas, laukimo informaciją, blokavimo informaciją ir išteklių sunaudojimą.

9. Geriausia praktika SQL Server Našumo stebėjimas

9.1 Veiklos bazinių reikšmių nustatymas

Veikimo baziniai rodikliai nustato įprastus jūsų sistemos veikimo parametrus. SQL Server aplinka. Be pradinių rodiklių negalite nustatyti, ar dabartiniai rodikliai rodo problemas, ar atspindi tipinį elgesį.

Sukurkite bazinius taškus:

  1. Bent vieną savaitę renkami našumo duomenys įprastos veiklos metu.
  2. Metrikų fiksavimas piko ir ne piko valandomis
  3. Tipinių pagrindinių skaitiklių verčių dokumentavimas
  4. Sezoninių svyravimų registravimas, jei taikomacable
  5. Bazinių duomenų saugojimas palyginimui su būsimais rodikliais

Atnaujinkite bazinius duomenis kas ketvirtį arba po reikšmingų infrastruktūros pakeitimų, programų atnaujinimų ar duomenų bazės modifikacijų.

9.2 Tinkamų įspėjimo slenksčių nustatymas

Konfigūruokite išmaniąsias slenksčius, kad gautumėte prasmingus įspėjimus neapkraudami savęs pranešimais:

  • Laukiančių atminties leidimų > 0 rodo atminties trūkumą
  • Procesoriaus eilės ilgis > 2 vienam branduoliui rodo procesoriaus kliūtį
  • Disko sek./skaitymo arba rašymo laikas > 20 ms rodo lėtą įvesties/išvesties veikimą
  • Užblokuoti procesai > 5 signalizuoja apie konkurencijos problemas
  • Puslapio gyvavimo trukmė < 300 sekundžių rodo atminties trūkumą

Koreguokite slenksčius pagal savo bazinius duomenis ir konkrečias darbo krūvio charakteristikas. Naudokite adaptyvius slenksčius, kurie atsižvelgia į įprastus jūsų aplinkos pokyčius.

9.3 Reguliarus duomenų peržiūrėjimas ir analizė

Planuokite reguliarias veiklos apžvalgas, kad nustatytumėte tendencijas ir kylančias problemas:

  • Kasdien: Peržiūrėkite aukšto lygio metriką ir naujausius įspėjimus
  • Savaitinis: Atlikite išsamią našumo tendencijų analizę
  • Mėnesinis: generuokite išsamias ataskaitas ir palyginkite jas su pradiniais duomenimis
  • Kas ketvirtį: Peržiūrėti pajėgumų planavimą ir ilgalaikes tendencijas

Dokumentuokite išvadas ir stebėkite našumo pagerėjimą laikui bėgant.

9.4 Balansavimo stebėjimo pridėtinės išlaidos

Pats stebėjimas eikvoja išteklius, todėl duomenų rinkimą reikia subalansuoti su poveikiu našumui:

  • Nuolatiniam stebėjimui naudokite 30–60 sekundžių intervalus
  • Aktyviam trikčių šalinimui naudokite tik 15 sekundžių intervalus
  • Apriboti duomenų rinkimo laiką Nustatykite trukmę, kad išvengtumėte per didelio duomenų kiekio
  • Žurnalus saugokite atskiruose diskuose nuo duomenų bazės failų
  • Archyvuokite senus našumo duomenis, kad išlaikytumėte valdomus failų dydžius

Tinkamai sukonfigūruotas „Performance Monitor“ prideda minimalias išlaidas, paprastai mažiau nei 2 % sistemos išteklių.

9.5 Ilgalaikis duomenų saugojimas

Išsaugokite našumo duomenis prasmingai tendencijų analizei ir pajėgumų planavimui:

  • Saugokite bent 1–2 metų našumo duomenis
  • Archyvuokite duomenis atskiroje saugykloje po 3–6 mėnesių
  • Suspauskite senesnius žurnalų failus, kad sutaupytumėte vietos
  • Dokumentuokite visus svarbius įvykius ar pokyčius, kurie turi įtakos našumui

Atsižvelgiant į santykinai nedidelį našumo skaitiklių duomenų dydį, juos saugoti neribotą laiką dažnai yra įmanoma ir vertinga ilgalaikei analizei.

9.6 Integracija su DevOps praktikomis

Įtraukite duomenų bazės našumo stebėjimą į CI/CD srautus:

  • Į diegimo patvirtinimą įtraukite duomenų bazės našumo metriką
  • Automatizuokite naujų leidimų našumo testavimą
  • Patikrinkite, ar kodo pakeitimai neturi neigiamos įtakos našumui
  • Sukurkite kiekvieno leidimo našumo etalonus
  • Integruokite stebėjimo įspėjimus su incidentų valdymo sistemomis

10. Dažniausiai pasitaikančių našumo problemų šalinimas

10.1 CPU kliūčių nustatymas

CPU problemos pasireiškia lėtu užklausų atsakymo laiku ir dideliu procesoriaus apkrovimu. Norėdami diagnozuoti CPU problemas, atlikite šiuos veiksmus:

  1. Patikrinkite procesoriaus eilės ilgio skaitiklį. Vertės, didesnės nei 2 vienam branduoliui, rodo procesoriaus apkrovą.
  2. Peržiūrėkite procesoriaus laiko procentą. Nuolatinės vertės, viršijančios 75 %, rodo procesoriaus ribotumą.
  3. Nuotolinis darbalaukis SQL Server
  4. Atidaryti užduočių tvarkytuvę (Ctrl + Shift + Esc)
  5. Spustelkite procesai kortelė
  6. Atrask Rodyti visų vartotojų procesus
  7. Spustelkite CPU stulpelio antraštė, skirta rūšiuoti pagal procesoriaus naudojimą
  8. Nustatykite, kurie procesai naudoja procesoriaus išteklius

Jei neSQL Server Jei programos naudoja daug procesoriaus procesoriaus, pašalinkite jas iš duomenų bazės serverio. Jei sqlservr.exe naudoja daug procesoriaus procesoriaus procesoriaus, patikrinkite tai šiais metodais:

  • Patikrinkite SQL kompiliacijų/sek. ir SQL pakartotinių kompiliacijų/sek. skaičių. Reikšmės, viršijančios 10 % paketinių užklausų/sek., rodo per didelį kompiliavimą.
  • Užklausos sys.dm_exec_query_stats, skirtos CPU intensyviai naudojančioms užklausoms nustatyti
  • Peržiūrėkite vykdymo planus, ar nėra trūkstamų indeksų arba neefektyvių operacijų
  • Apsvarstykite galimybę pridėti indeksus, kad sumažintumėte lentelių nuskaitymų skaičių.

10.2 Atminties problemų diagnostika

Atminties problemos daro didelę įtaką SQL Server našumas. Diagnozuokite atminties problemas naudodami šiuos indikatorius:

Galimi atminties lašai

Jei galimų MB nuolat nukrenta žemiau 100 MB, operacinė sistema susiduria su atminties apribojimais.tarvacija. „Windows“ gali išstumti puslapį SQL Server atminties į diską, dėl to pablogėja našumas.

Maža puslapio gyvavimo trukmė

Puslapio gyvavimo trukmė, mažesnė nei 300 sekundžių, rodo didelę buferio talpyklos apyvartą. Tai rodo nepakankamą atminties paskirstymą arba per didelį atminties spaudimą dėl užklausų.

Mažas buferinės talpyklos pataikymo koeficientas

Buferio talpyklos atitikmenų santykis mažesnis nei 99 % reiškia SQL Server dažnai skaito duomenis iš disko, o ne iš atminties. Taip nutinka, kai buferio telkinys yra per mažas arba SQL Server vis dar šyla po restart.

Laukiama atminties dotacijų

Bet kokia reikšmė, didesnė nei 0, lauke „Laukiama atminties suteikimo“, reiškia, kad užklausos laukia atminties suteikimo. Tai rodo kritinį atminties trūkumą, į kurį reikia nedelsiant atkreipti dėmesį.

Norėdami išspręsti atminties problemas:

  1. Nustatyti SQL Server maksimalaus atminties nustatymas, kad operacinei sistemai liktų pakankamai RAM (paprastai 4–8 GB, priklausomai nuo serverio dydžio)
  2. Įjunkite leidimą „Užrakinti puslapius atmintyje“ SQL Server paslaugos paskyra
  3. Jei atminties trūkumas išlieka, į serverį įdėkite daugiau fizinės RAM
  4. Atminties reikalaujančių užklausų nustatymas ir optimizavimas

10.3 Disko įvesties/išvesties problemų sprendimas

Disko įvestis/išvestis dažnai tampa pagrindine našumo kliūtimi duomenų bazių sistemose. Disko problemas galite diagnozuoti naudodami šiuos metodus:

Didelis disko eilės ilgis

Jei disko eilės ilgis nuolat viršija 2 (arba 2 kiekvienam diskui RAID atveju), tai rodo, kad disko posistemė negali suspėti apdoroti įvesties/išvesties užklausų. Dėl to susidaro laukiančių operacijų kaupimasis.

Per didelis disko delsos laikas

Vid. disko sek./skaitymo ir vid. disko sek./rašymo vertės, viršijančios 10–20 ms, rodo lėtą disko atsaką. Operacijų žurnalų diskams reikalingas ypač didelis našumas, idealiu atveju – mažiau nei 5 ms įrašymui.

Didelis disko laiko procentas

Nuolatinis % disko laikas, viršijantis 85 %, rodo disko persotinimą. Diskas praleidžia most savo laiko apdorojant įvesties/išvesties užklausas, kai lieka mažai laisvos galios.

Prieš spręsdami disko problemas, įsitikinkite, kad tai nėra atminties problemų simptomai. Nepakanka atminties, todėl SQL Server nuskaityti daugiau duomenų iš disko, dirbtinai padidinant disko metriką.

Norėdami išspręsti tikro disko įvesties / išvesties problemas:

  • Atnaujinkite į greitesnius diskus (SSD vietoj HDD)
  • Įdiekite RAID konfigūracijas, kad pagerintumėte našumą
  • Atskirkite duomenų bazės failus, operacijų žurnalus ir laikinąją duomenų bazę skirtinguose fiziniuose diskuose
  • Įdėkite daugiau atminties, kad sumažintumėte disko nuskaitymų skaičių
  • Optimizuokite indeksus, kad sumažintumėte nereikalingą įvesties / išvesties kiekį
  • Peržiūrėkite ir optimizuokite prastai veikiančias užklausas

10.4 Blokavimo ir aklavietės problemų sprendimas

Blokavimas įvyksta, kai vienas seansas turi užraktus, kurie neleidžia tęsti kitų seansų. Stebėkite šiuos skaitiklius, kad nustatytumėte blokavimo problemas:

  • Užblokuoti procesai: Idealiu atveju turėtų būti 0
  • Užrakinimo laukimo laikas/sek.: Užrakinimo užklausų, kurioms reikia laukti, skaičius
  • Vidutinis laukimo laikas: Vidutinė užrakinimo laukimo trukmė

Norėdami ištirti blokavimą:

  1. Atidarykite veiklos monitorių SSMS
  2. plėsti procesai skyrius
  3. Ieškokite procesų, kurių vertė nėra nulinė Užblokavo vertybės
  4. Nustatykite blokavimo sesijos ID
  5. Peržiūrėkite užklausas, kurios blokuoja

Išsamesnei blokavimo analizei naudokite „sp_WhoIsActive“. Per didelis „wait_info“ įrašų skaičius dažnai rodo laikinosios duomenų bazės konkurencijos arba blokavimo problemas.

Norėdami sumažinti blokavimą:

  • Sumažinkite operacijos trukmę
  • Naudokite tinkamus izoliacijos lygius
  • Pridėkite indeksus, kad sutrumpintumėte užrakinimo trukmę
  • Apsvarstykite READ_COMMITTED_SNAPSHOT izoliaciją
  • Peržiūrėti ir optimizuoti ilgai veikiančias užklausas

10.5 Užklausų našumo problemos

Brangių užklausų identifikavimas yra būtinas SQL našumo stebėjimui. Norėdami rasti problemines užklausas, naudokite šiuos metodus:

„Activity Monitor“ naudojimas

  1. SSMS sistemoje dešiniuoju pelės mygtuku spustelėkite serverio pavadinimą
  2. pasirinkti Activity Monitor
  3. Plėsti Naujausios brangios užklausos
  4. Peržiūrėkite užklausas, kurioms reikalingas didelis procesoriaus našumas, trukmė arba loginiai skaitymai

Naudojant DMV

Užklausa sys.dm_exec_query_stats, skirta resursų reikalaujančioms užklausoms nustatyti:

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

Vykdymo planų analizė

  1. SSMS sistemoje atidarykite naują užklausos langą
  2. Spauskite Rodyti numatomą vykdymo planą (Ctrl+L) arba Įtraukti faktinį vykdymo planą (Ctrl+M)
  3. Vykdykite savo užklausą
  4. Peržiūrėkite brangių operacijų vykdymo planą
  5. Ieškokite lentelių nuskaitymų, indeksų nuskaitymų arba aukšto lygio cost operacijos

Optimizuokite užklausas pagal:

  • Pridedami atitinkami indeksai
  • Užklausų perrašymas siekiant išvengti brangių operacijų
  • Statistikos atnaujinimas
  • Naudojant konkrečius stulpelių pavadinimus vietoj SELECT *
  • Venkite nereikalingų DISTINCT arba ORDER BY sąlygų

10.6 Sugadintos duomenų bazės aptikimas ir taisymas

Duomenų bazės sugadinimas gali sukelti našumo pablogėjimą, duomenų praradimą ir sistemos gedimus. Greitas sugadinimo aptikimas ir pašalinimas yra labai svarbus norint išlaikyti duomenų bazės sveikatą.

Duomenų bazės sugadinimo indikatoriai

Atkreipkite dėmesį į šiuos galimos korupcijos požymius:

  • Klaidų pranešimai SQL Server klaidų žurnalas (klaida 823, 824 arba 825)
  • Netikėtos programos klaidos bandant pasiekti konkrečias lenteles
  • Lėtas užklausų našumas anksčiau greitose užklausose
  • SQL Server gedimai arba netikėti sprendimaitarts
  • Įtartini puslapiai, rodomi lentelėje msdb.dbo.suspect_pages

DBCC CHECKDB naudojimas aptikimui

DBCC CHECKDB yra pagrindinė duomenų bazės pažeidimų aptikimo priemonė. Reguliariai ją paleiskite, kad problemos būtų pastebėtos anksti.

Įtartinų puslapių stebėjimas

SQL Server automatiškai įrašo įtartinus puslapius į msdb duomenų bazę:

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)

Bet kokios grąžintos eilutės rodo korupcijos problemas, į kurias reikia nedelsiant atkreipti dėmesį.

Korupcijos prevencijos strategijos

  • Įgalinti puslapio patvirtinimą naudojant kontrolinės sumos parinktį
  • Reguliariai tvarkykite duomenų bazės atsargines kopijas
  • Naudokite patikimą įrangą su klaidų taisymu
  • Stebėkite disko būklę naudodami gamintojo įrankius
  • Suplanuoti reguliarius DBCC CHECKDB vykdymus
  • laikyti SQL Server atnaujinta su naujausiais pataisymais

Atkūrimo ir taisymo parinktys

Jei aptinkama pažeidimų, galite išbandyti integruotą įrankį DBCC CHECKDB kad juos ištaisytumėte. Jei nepavyksta, naudokite trečiųjų šalių įrankius, pvz., DataNumen SQL Recovery kuris gali susidoroti su sunkiais korupcijos atvejais.

11. Pažangūs stebėjimo metodai

11.1 Užklausų saugyklos stebėjimas

Užklausų saugykla, pristatyta 2013 m. SQL Server 2016 m. automatiškai fiksuoja užklausų našumo duomenis. Tai suteikia vertingų įžvalgų apie užklausų elgseną, vykdymo planus ir našumo tendencijas.

Užklausų saugyklos įjungimas

  1. SSMS objektų naršyklėje dešiniuoju pelės mygtuku spustelėkite duomenų bazę
  2. pasirinkti Skelbimų
  3. Spustelkite Užklausų parduotuvė puslapis
  4. In Veikimo režimas (pageidaujamas), Pasirinkite Skaityk rašyk
  5. Konfigūruokite papildomus nustatymus pagal poreikį
  6. Spauskite OK

Užklausų našumo stebėjimas

„Access Query Store“ ataskaitos per „Object Explorer“:

  1. Išplėskite duomenų bazę objektų naršyklėje
  2. Plėsti Užklausų parduotuvė
  3. Pasirinkite iš galimų ataskaitų:
    • Regresuotos užklausos
    • Bendras išteklių suvartojimas
    • Dažniausiai išteklius naudojančios užklausos
    • Užklausos su priverstiniais planais
    • Stebimos užklausos

Plano regresijos aptikimas

Užklausų saugykla automatiškai aptinka, kada pasikeičia užklausų vykdymo planai ir suprastėja našumas. Peržiūrėkite regresuotų užklausų ataskaitą, kad nustatytumėte užklausas, kurioms įtakos turėjo plano pakeitimai.

Priverstinio plano valdymas

Kai užklausų saugykla nustato geresnį vykdymo planą, priverstinai SQL Server norint jį naudoti:

  1. Atidarykite užklausą užklausų saugykloje
  2. Dešiniuoju pelės mygtuku spustelėkite norimą planą
  3. pasirinkti Jėgos planas

Tai iš karto pagerina našumą, nereikalaujant kodo pakeitimų.

11.2 Indekso priežiūros stebėjimas

Indeksų fragmentacija laikui bėgant mažina užklausų našumą. Reguliariai stebėkite ir prižiūrėkite indeksus, kad užtikrintumėte optimalų našumą.

Fragmentacijos tikrinimas

Norėdami patikrinti indekso fragmentaciją, naudokite šią užklausą:

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

Šią užklausą vykdykite ne piko valandomis, nes tai gali pareikalauti daug išteklių.

Puslapio tankio analizė

Puslapio tankis rodo, kiek užpildyti yra indekso puslapiai. Mažas tankis eikvoja vietą ir mažina našumą:

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

Reorganizuoti ir atkurti sprendimus

Pasirinkite indekso priežiūros operacijas pagal fragmentacijos lygius:

  • Fragmentacija 10–30 %: naudokite ALTER INDEX REORGANIZE
  • Fragmentacija > 30%: naudokite ALTER INDEX REBUILD
  • Fragmentacija < 10 %: Veiksmų nereikia

Reorganizavimo operacijoms reikia mažiau išteklių ir jos gali būti vykdomos internetu. Atkūrimo operacijos yra kruopštesnės, tačiau sunaudoja daug išteklių.

11.3 Duomenų bazės statistikos atnaujinimai

Duomenų bazės statistikos pagalba SQL Server„“ užklausų optimizavimo priemonė sukuria efektyvius vykdymo planus. Pasenusi statistika lemia prastą užklausų našumą.

Automatinis statistikos atkūrimas

Įgalinti automatinius statistikos atnaujinimus:

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

Stebėsena Statistikos sveikata

Patikrinkite, kada paskutinį kartą atnaujinta statistika:

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

Atnaujinkite statistiką rankiniu būdu, kai reikia:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Pasirinktinių našumo duomenų rinkimas

Kurkite pasirinktinius našumo stebėjimo sprendimus tiesiogiai pateikdami užklausas sys.dm_os_performance_counters ir išsaugodami rezultatus lentelėse.

Pasirinktinių kolekcijų scenarijų kūrimas

Sukurkite saugomą procedūrą našumo skaitiklio duomenims rinkti:

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

Naudojant sys.dm_os_performance_counters

Užklausos našumo skaitikliai tiesiogiai:

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

Istorinių duomenų saugojimas

Sukurkite lentelę, kurioje būtų saugomi našumo rodikliai laikui bėgant:

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

Suvestinių duomenų saugojimo metodai

Duomenis saugokite sukamuoju formatu, po vieną eilutę kiekvienam imties laikui ir po vieną stulpelį kiekvienam skaitikliui. Tai sumažina saugyklos vietą ir pagerina užklausų našumą, palyginti su vienos eilutės saugojimu kiekvienam skaitikliui kiekvienam imčiai.

11.5 Kelių serverių stebėjimas

Aplinkoms su keliais SQL Server atvejais įdiekite centralizuotą stebėseną.

Centralizuotas stebėjimo metodas

  • Sukurkite specialią stebėjimo duomenų bazę atskirame serveryje
  • Rinkti duomenis iš visų serverių į centrinę saugyklą
  • naudojimas SQL Server Agento užduotys, skirtos rinkimo scenarijams vykdyti
  • Įdiegti tinkle prieinamą našumo skaitiklių rinkimą

Nuotolinis serverio stebėjimas

Konfigūruokite „Performance Monitor“, kad rinktų duomenis iš nuotolinių serverių, nurodydami serverių pavadinimus pridedant skaitiklius. Įsitikinkite, kad užkardos taisyklės leidžia „Performance Monitor“ srautą.

Ataskaitų teikimas tarp serverių

Kurkite ataskaitas, kuriose lyginamas kelių serverių našumas, siekiant nustatyti išskirtinius rodiklius ir pajėgumų disbalansą.

12. Stebėjimas SQL Server debesų aplinkose

12.1 „Azure SQL“ duomenų bazės stebėjimas

„Azure SQL“ duomenų bazėje yra integruotos stebėjimo galimybės, kurios skiriasi nuo vietinių duomenų bazių. SQL Server.

Azure monitoriaus integracija

„Azure Monitor“ automatiškai renka metriką iš „Azure SQL“ duomenų bazės, įskaitant:

  • DTU arba vCore panaudojimas
  • Sandėliavimo naudojimas
  • Ryšio statistika
  • Aklavietės ir pertraukos

Pasiekite šiuos rodiklius per „Azure Portal“ arba „Azure Monitor“ API.

Integruotos stebėjimo funkcijos

„Azure SQL“ duomenų bazė apima:

  • Automatinio derinimo rekomendacijos
  • Užklausos našumo įžvalga
  • Išmanios įžvalgos anomalijų aptikimui
  • Integruotas įspėjimas ir diagnostikaostnika

Užklausos našumo įžvalga

Ši funkcija pateikia daugiausiai išteklių naudojančių užklausų vizualizaciją, užklausų trukmės analizę ir istorines našumo tendencijas. Ją galite pasiekti per „Azure“ portalą, naudodami savo SQL duomenų bazės išteklių.

12.2 Debesyje įdiegtos stebėjimo priemonės

Debesų platformos siūlo vietinius stebėjimo sprendimus, optimizuotus jų aplinkai:

  • „Azure Monitor“ ir „Application Insights“, skirti „Azure SQL“ duomenų bazei
  • AWS CloudWatch RDS SQL Server
  • „Google Cloud“ stebėjimas debesims SQL Server

Šie įrankiai sklandžiai integruojasi su debesijos infrastruktūra ir užtikrina vieningą visų debesijos išteklių stebėjimą.

Hibridinės aplinkos stebėsena

Hibridiniams diegimams, apimantiems tiek vietines, tiek debesies aplinkas, naudokite įrankius, kurie palaiko abi aplinkas, pvz., „Redgate SQL Monitor“, „SolarWinds DPA“ arba pasirinktinius sprendimus, naudojant centralizuotą duomenų rinkimą.

12.3 Našumo skirtumai debesyje

debesis SQL Server aplinka turi unikalių savybių:

Išteklių paskirstymo modeliai

Debesijos paslaugų teikėjai naudoja skirtingus išteklių paskirstymo metodus (DTU, vCore, be serverio), kurie turi įtakos tam, kaip interpretuojate našumo metriką. Supraskite savo paslaugų lygio apribojimus ir charakteristikas.

Mastelio svarstymai

Debesų aplinkos siūlo dinaminio mastelio keitimo galimybes. Stebėkite išteklių naudojimą, kad nustatytumėte, kada didinti arba mažinti mastelį. Daugelyje debesų platformų siūlomas automatinis mastelio keitimas pagal našumo ribas.

13. Našumo stebėjimo automatizavimas

13.1 SQL Server Agentas Jobsas

Automatizuoti duomenų rinkimą naudojant SQL Server Agento užduotys, skirtos nuosekliam stebėjimui be rankinio įsikišimo.

Suplanuotas duomenų rinkimas

  1. SSMS sistemoje išplėskite SQL Server Agentas
  2. Dešiniuoju pelės mygtuku spustelėkite Darbai ir tuomet Naujas darbas
  3. Pavadinkite užduotį (pvz., „Rinkti našumo metriką“)
  4. Spauskite Žingsniai ir pridėkite naują žingsnį
  5. Nustatykite tipą į „Transact-SQL“ scenarijus
  6. Įveskite duomenų rinkimo scenarijų
  7. Spauskite Tvarkaraščiai ir pridėkite tvarkaraštį
  8. Dažnio konfigūravimas (pvz., kas 5 minutes)
  9. Spauskite OK sukurti darbą

Automatinis ataskaitų teikimas

Kurti užduotis, kurios generuoja ir el. paštu siunčia našumo ataskaitas:

  1. Sukurkite saugomą procedūrą, kuri generuoja ataskaitas
  2. Norėdami siųsti ataskaitas el. paštu, naudokite duomenų bazės paštą
  3. Suplanuokite užduotį, kad ji būtų vykdoma kasdien arba kas savaitę

13.2 „PowerShell“ automatizavimas

„PowerShell“ suteikia galingas automatizavimo galimybes SQL Server našumo monitorius.

Našumo skaitiklio rinkimo scenarijai

$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 užklausos

Naudokite WMI, kad rinktumėte našumo duomenis iš nuotolinių serverių:

$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"

Automatinis įspėjimas

Sukurkite „PowerShell“ scenarijus, kurie tikrina metriką ir siunčia įspėjimus, kai pažeidžiamos ribos:

$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 Stebėjimo ataskaitų sričių kūrimas

Vizualizuokite našumo duomenis naudodami interaktyvias ataskaitų suvestines, kad gautumėte geresnių įžvalgų.

„Power BI“ integravimas

  1. Prijunkite „Power BI“ prie savo našumo duomenų lentelių
  2. Kurkite pagrindinių metrikų vizualizacijas
  3. Pridėkite laiko intervalo ir serverio pasirinkimo duomenų skilteles
  4. Ataskaitų sričių publikavimas „Power BI“ tarnyboje
  5. Automatinio atnaujinimo tvarkaraščių konfigūravimas

Prietaisų skydelio kūrimas realiuoju laiku

Naudokite tokius įrankius kaip „Grafana“ arba pasirinktines žiniatinklio programas, kad sukurtumėte realaus laiko ataskaitų suvestines, kurios tiesiogiai užklausia DMV ir našumo skaitiklius.

Istorinių tendencijų vizualizacija

Sukurkite linijines diagramas, rodančias tendencijas laikui bėgant:

  • Procesoriaus panaudojimas
  • Atminties naudojimas
  • Disk I / O
  • Užklausos našumas
  • Ryšių skaičius

14. Atvejo analizės ir praktiniai pavyzdžiai

14.1 Atvejo analizė: atminties spaudimo sprendimas

Simptomo identifikavimas

Gamyba SQL Server piko valandomis užklausų atsakymų laikas buvo lėtas. Vartotojai skundėsi programų skirtojo laiko pabaiga ir sumažėjusiu našumu.

Counter analizė

Atskleisti našumo monitoriaus duomenys:

  • Puslapio gyvavimo trukmė sutrumpėjo iki 50 sekundžių (įprasta: >300)
  • Buferio talpyklos pataikymo santykis sumažėjo iki 85 % (normaliai: >99 %)
  • Laukiančių atminties suteikimų reikšmės dažnai rodė 5–10.
  • Fizinio disko nuskaitymų skaičius per sekundę smarkiai išaugo

Rezoliucijos žingsniai

  1. Patikrinta SQL Server maksimalios atminties nustatymas – nustatyta, kad jis nustatytas pagal numatytuosius nustatymus (neribotas)
  2. Apžvelgta bendra serverio atmintis, palyginti su Targauti serverio atmintį – parodė didelį trūkumą
  3. Sukonfigūruota maksimali serverio atmintis, kad operacinei sistemai liktų 8 GB
  4. Įgalintas leidimas „Užrakinti puslapius atmintyje“ SQL Server paslaugos paskyra
  5. Serveriui pridėta 32 GB papildomos RAM atminties
  6. Stebimas našumas vieną savaitę – puslapio gyvavimo trukmė stabilizavosi virš 500 sekundžių

Rezultatas: Užklausų atsakymo laikas pagerėjo 60 %, vartotojų skundai liovėsi, o programos našumas normalizavosi.

14.2 Atvejo analizė: CPU našumo optimizavimas

Simptomo identifikavimas

A SQL Server darbo valandomis nuolat rodė didesnį nei 90 % procesoriaus panaudojimą, todėl programos veikė lėtai ir vartotojai nusivylė.

Counter analizė

Veiklos stebėjimas atskleidė:

  • Vidutinis procesoriaus laikas (%) siekė 92 %, o dažni šuoliai siekė 100 %.
  • Procesoriaus eilės ilgis nuolat viršija 4 (serveris turėjo 8 branduolius)
  • SQL kompiliacijų skaičius per sekundę buvo 25 % paketinių užklausų skaičiaus per sekundę (turėtų būti <10 %).
  • SQL pakartotinių kompiliacijų skaičius per sekundę sudarė 15 % paketinių užklausų skaičiaus per sekundę.

Rezoliucijos žingsniai

  1. Naudojo DMV, kad nustatytų daugiausia procesoriaus apkrovą naudojančias užklausas
  2. Išanalizuoti nustatytų užklausų vykdymo planai
  3. Aptikta daugybinė didelių lentelių nuskaitymų dėl trūkstamų indeksų
  4. Sukūrė tinkamus indeksus pagal vykdymo plano rekomendacijas
  5. Nustatytas dinaminis SQL, dėl kurio per daug kompiliuojama
  6. Pakeistas programos kodas, kad būtų galima naudoti parametrines užklausas
  7. Įdiegtas probleminių saugomų procedūrų plano vadovas
  8. Atnaujinta statistika apie dažnai naudojamas lenteles

Rezultatas: CPU panaudojimas darbo valandomis sumažėjo iki vidutiniškai 45 %. Užklausų vykdymo laikas pagerėjo 70 %. Žymiai pagerėjo programų reagavimas į našumą.

14.3 Atvejo analizė: disko įvesties/išvesties kliūčių sprendimas

Simptomo identifikavimas

Vartotojai pranešė apie itin lėtą programų reakciją duomenų įkėlimo operacijų ir vakarinio paketinio apdorojimo metu.

Counter analizė

Našumo duomenys parodė:

  • Vid. disko sek./rašymo laikas operacijų žurnalo diske viršijo 45 ms
  • Vidutinis disko eilės ilgis duomenų failų diske buvo 12
  • Disko laiko procentas paketinių užduočių metu kelias valandas viršijo 95 %
  • Puslapio įrašymo/sek. skaičius buvo išskirtinai didelis

Rezoliucijos žingsniai

  1. Patikrinti atminties nustatymai buvo tinkami – atminties problemų nerasta
  2. Išanalizuota disko konfigūracija – rasti visi failai tame pačiame veleno rinkinyje
  3. Atskirti operacijų žurnalai skirtiems greitiems SSD diskams
  4. Perkelta laikinoji duomenų bazė į atskirus SSD diskus
  5. Įdiegti keli laikinųjų duomenų failai (po vieną kiekvienam branduoliui)
  6. Duomenų failų diskai atnaujinti į RAID 10 SSD konfigūraciją
  7. Optimizuoti paketiniai darbai, skirti naudoti mažesnes operacijų partijas
  8. Pridėti indeksai, siekiant sumažinti nereikalingą lentelių nuskaitymą paketinių operacijų metu

Rezultatas: Vidutinis disko įrašymo laikas (sek.) sumažėjo iki 3 ms. Vidutinis disko eilės ilgis buvo mažesnis nei 1. Paketinio darbo atlikimo laikas sutrumpėjo 75 %.

15. Būsimos tendencijos SQL Server Stebėsena

15.1 AI ir mašininio mokymosi integravimas

Dirbtinis intelektas ir mašininis mokymasis keičiasi SQL Server našumo monitorius.

Nuspėjama „Analytics“

Mašininio mokymosi modeliai prognozuoja būsimus išteklių poreikius, remdamiesi istoriniais duomenimis. Šios sistemos gali prognozuoti:

  • Kai bus išeikvota saugojimo talpa
  • Numatomi procesoriaus ir atminties reikalavimai piko metu
  • Užklausos našumo pablogėjimas prieš tai paveikiant vartotojus
  • Optimalus laikas techninės priežiūros darbams

Anomalijų nustatymas

Dirbtiniu intelektu paremti įrankiai automatiškai aptinka neįprastus našumo rodiklių modelius. Jie nustato anomalijas, kurių žmonės administratoriai gali nepastebėti, ir atskiria įprastus variantus nuo tikrų problemų.

Automatizuotas taisymas

Savaime atsistatančios sistemos automatiškai išsprendžia dažniausiai aptinkamas problemas:

  • Raiškatart paslaugos, kurios buvo sustabdytos
  • Perskirstykite išteklius piko metu
  • Taikykite karštąsias pataisas žinomoms problemoms spręsti
  • Automatiškai atkurti fragmentuotus indeksus

15.2 Debesijos pagrindu veikiančios stebėsenos evoliucija

Debesų stebėjimas toliau tobulėja ir suteikia naujų galimybių.

Vieningos stebėjimo platformos

Šiuolaikinės platformos užtikrina vieno stiklo lango matomumą:

  • Patalpose SQL Server atvejai
  • Debesis-hosted duomenų bazės
  • Hibridinės aplinkos
  • Programos atlikimas
  • Infrastruktūros metrika

Stebimumo tendencijos

Perėjimas nuo stebėjimo prie stebimumo pabrėžia:

  • Sistemos elgesio supratimas iš išvesčių
  • Metrikų, žurnalų ir pėdsakų koreliacija
  • Gilios įžvalgos apie paskirstytas sistemas
  • Problemų diagnostika realiuoju laiku

15.3 Savaime atsikuriančios duomenų bazių sistemos

Ateitis SQL Server versijose bus daugiau autonominių funkcijų.

Automatinis optimizavimas

Duomenų bazės nuolat optimizuos save:

  • Automatinis indeksų kūrimas ir šalinimas pagal darbo krūvį
  • Konfigūracijos nustatymų koregavimas optimaliam našumui
  • Skaidriai perrašant neefektyvias užklausas
  • Dinamiškai valdyti išteklių paskirstymą

Išmanusis derinimas

Pažangios sistemos mokysis iš našumo modelių ir automatiškai pritaikys derinimo rekomendacijas, sumažindamos rankinio duomenų bazės administratoriaus įsikišimo poreikį.

16. Išvada ir pagrindiniai dalykai

16.1 Esminių stebėsenos praktikų santrauka

Veiksmingas SQL Server Našumo stebėjimui reikalingas visapusiškas požiūris, apimantis įrankius, metodus ir geriausią praktiką.

Kritinių skaitiklių santrauka

Sutelkite stebėjimo pastangas į šiuos esminius skaitiklius:

  • Atmintis: puslapio gyvavimo trukmė, buferio talpyklos pataikymo rodiklis, laukiamos atminties suteikimo galimybės
  • CPU: % procesoriaus laikas, procesoriaus eilės ilgis
  • Diskas: vid. disko sek./skaitymas ir rašymas, disko eilės ilgis
  • SQL ServerPaketinės užklausos/sek., Kompiliacijos/sek., Vartotojų ryšiai

Geriausios praktikos santrauka

  • Nustatyti bazinius lygius įprastos veiklos metu
  • Nustatykite išmaniąsias įspėjimo ribas pagal bazinius rodiklius
  • Reguliariai peržiūrėkite našumo duomenis
  • Balanso stebėjimo pridėtinės išlaidos su duomenų detalumu
  • Išsaugokite ilgalaikius duomenis tendencijų analizei
  • Kiekvienam stebėjimo scenarijui naudokite tinkamus įrankius

16.2 Nuolatinio tobulinimo metodas

SQL Server Veiklos stebėjimas nėra vienkartinė veikla, o nuolatinis procesas, reikalaujantis nuolatinio tobulinimo.

Reguliarūs peržiūros ciklai

  • Kasdien: patikrinkite įspėjimus ir dabartinį našumą
  • Savaitinis: Peržiūrėkite tendencijas ir nustatykite kylančias problemas
  • Mėnesinis: ilgalaikių tendencijų ir pajėgumų poreikių analizė
  • Kas ketvirtį: Atnaujinti bazinius rodiklius ir peržiūrėti stebėsenos efektyvumą

Įrankių atnaujinimas

Nuolat atnaujinkite stebėsenos įrankius ir metodus:

  • Įvertinkite naujas stebėjimo funkcijas SQL Server atnaujinimai
  • Išbandykite naujus trečiųjų šalių įrankius
  • Dalyvaukite mokymuose ir konferencijose
  • Dalyvauti SQL Server bendruomenės forumuose
  • Dalinkitės žiniomis su komandos nariais

16.3 tolesni žingsniai

Įgyvendinti SQL Server sistemingai stebėti našumą:

Įgyvendinimo planas

  1. Savaitė 1: Nustatykite našumo monitorių su svarbiausiais skaitikliais
  2. Savaitė 2: Duomenų rinkėjų rinkinių kūrimas automatizuotam rinkimui
  3. Savaitė 3: Nustatyti bazinius lygius įprastos veiklos metu
  4. Savaitė 4: Įspėjimų, susijusių su kritinėmis ribomis, konfigūravimas
  5. 2 mėnuo: Įdiegti papildomas stebėjimo priemones (DMV, išplėstinius įvykius)
  6. 3 mėnuo: Kurkite pasirinktines ataskaitų suvestines ir ataskaitas
  7. Vykdoma: Tobulinkite stebėseną remdamiesi patirtimi ir kintančiais reikalavimais

Papildomi ištekliai

Toliau mokykitės apie SQL Server Stebėkite našumą naudodamiesi „Microsoft“ dokumentacija, bendruomenės tinklaraščiais ir praktiniais metodais. Eksperimentuokite su skirtingais įrankiais ir metodais, kad rastumėte, kas geriausiai tinka jūsų aplinkai.

17. Dažnai užduodami klausimai (DUK)

17.1 Kokie yra m?ost svarbus SQL Server Našumo skaitikliai, kuriuos reikia stebėti?

Most kritinis SQL Server Našumo skaitikliai apima:

  • Atmintis: puslapio gyvavimo trukmė (turėtų būti >300 sekundžių) ir buferio talpyklos paspaudimų santykis (turėtų būti >99 %)
  • CPU: procesoriaus laikas (nuolatinės vertės <75 %) ir procesoriaus eilės ilgis (turėtų būti <2 vienam branduoliui)
  • Diskas: Vid. disko sek./skaitymo ir rašymo laikas (turėtų būti <10–20 ms) ir disko eilės ilgis (turėtų būti <2 vienam diskui)
  • SQL ServerPaketinių užklausų/sek., SQL kompiliacijų/sek. ir laukiančių atminties suteikimų skaičius (turėtų būti 0)

Šie skaitikliai suteikia išsamią informaciją apie sistemos būklę ir padeda greitai nustatyti kliūtis.

17.2 Kaip dažnai turėčiau rinkti našumo duomenis?

Rinkimo dažnumas priklauso nuo jūsų stebėjimo tikslų:

  • Pradinis stebėjimas: kas 1 minutę (60 sekundžių)
  • Aktyvus trikčių šalinimas: kas 15–30 sekundžių trumpais laikotarpiais
  • Ilgalaikė tendencija: kas 5 minutes

Venkite nuolatinio dažno duomenų rinkimo, nes tai gali paveikti našumą ir generuoti per daug duomenų. Įprastai stebėsenai naudokite ilgesnius intervalus, o trumpesnius – tik tirdami konkrečias problemas.

17.3 Kuo skiriasi našumo monitorius ir SQL Server Profileris?

Našumo monitorius ir SQL Server Profiliavimo įrankiai skirti skirtingiems tikslams:

Našumo stebėjimas:

  • Stebėjimo sistema ir SQL Server našumo skaitikliai
  • Stebi išteklių naudojimą (procesorius, atmintis, diskas)
  • Mažos išlaidos, tinka nuolatiniam stebėjimui
  • Pateikia apibendrintus rodiklius laikui bėgant

SQL Server profiliuotojas:

  • Individualūs pėdsakai SQL Server įvykiai ir užklausos
  • Fiksuoja išsamią užklausos vykdymo informaciją
  • Didesnės išlaidos, nerekomenduojama naudoti nuolat
  • Geriausiai tinka konkrečių užklausų problemų šalinimui
  • Nebenaudojama, pirmenybė teikiama išplėstiniams įvykiams

Visapusiškam sistemos stebėjimui naudokite „Performance Monitor“, o išsamiai užklausų lygio analizei – „Extended Events“ (ne „Profiler“).

17.4 Ar gali būti paveiktas našumo monitorius? SQL Server spektaklis?

Tinkamai sukonfigūruotas našumo monitorius turi minimalų poveikį SQL Server našumas, paprastai mažiau nei 2 % pridėtinės vertės. Tačiau per didelis stebėjimas gali sukelti problemų:

  • Per daug skaitiklių padidina išlaidas
  • Labai trumpi mėginių ėmimo intervalai (mažiau nei 15 sekundžių) apkrauna išteklius
  • Nuolatinis didelio dažnio duomenų rinkimas generuoja didelius žurnalų failus

Siekiant sumažinti poveikį:

  • Stebėkite tik būtinus skaitiklius
  • Naudokite tinkamus mėginių ėmimo intervalus (60 sekundžių įprastiniam stebėjimui)
  • Žurnalus saugokite diskuose atskirai nuo duomenų bazės failų
  • Suplanuokite daug išteklių reikalaujantį stebėjimą ne piko valandomis

17.5 Kiek laiko turėčiau saugoti našumo stebėjimo duomenis?

Saugojimo trukmė priklauso nuo jūsų analizės poreikių ir saugojimo talpos:

  • Minimumas: 3 mėnesiai naujausių problemų šalinimui
  • Rekomenduojama: 1–2 metai pajėgumų planavimui ir tendencijų analizei
  • Optimalus: Neribotą laiką, jei leidžia saugojimo vietos, nes istoriniai duomenys laikui bėgant tampa vertingesni.

Našumo skaitiklio duomenys gerai suspaudžiami ir užima santykinai mažai vietos. Apsvarstykite galimybę archyvuoti senesnius duomenis atskiroje saugykloje, o ne juos ištrinti. Daugelis organizacijų pastebi, kad daugelio metų istoriniai duomenys yra neįkainojami planuojant pajėgumus ir nustatant ilgalaikes tendencijas.

17.6 Kokios yra geros pagrindinių našumo skaitiklių ribinės vertės?

Rekomenduojamos įspėjimo ribinės vertės:

  • Laukiama atminties suteikimų: Įspėti, kai > 0
  • Puslapio gyvavimo trukmė: Įspėti, kai < 300 sekundžių
  • % Procesoriaus laikas: Įspėti, kai > 80 % 5 minutes
  • Procesoriaus eilės ilgis: Įspėjimas, kai > 2 vienam branduoliui
  • Vid. disko skaitymo arba rašymo laikas (sek.): Įspėti, kai > 20 ms
  • Disko eilės ilgis: Įspėjimas, kai > 2 viename diske
  • Užblokuoti procesai: Įspėti, kai > 5

Koreguokite šias ribas pagal savo bazinius duomenis ir konkrečias darbo krūvio charakteristikas. Tai, kas įprasta vienoje aplinkoje, gali rodyti problemas kitoje.

17.7 Kaip stebėti SQL Server našumas nuotoliniu būdu?

Nuotolinio valdymo pultas SQL Server atvejais, kai naudojami šie metodai:

  1. Našumo stebėjimas: Pridėdami skaitiklius, nurodykite nuotolinio kompiuterio pavadinimą
  2. „PowerShell“: Naudokite parametrą „-ComputerName“ su „Get-Counter“
  3. DMV: Prisijunkite prie nuotolinių serverių per SSMS ir užklauskite DMV
  4. Trečiųjų šalių įrankiai: Most stebėjimo įrankiai palaiko nuotolinį serverio stebėjimą

Įsitikinkite, kad užkardos taisyklės leidžia „Performance Monitor“ srautą ir kad turite atitinkamas teises nuotoliniame serveryje. Jei turite kelis serverius, apsvarstykite galimybę įdiegti centralizuotą stebėjimą su specialiu stebėjimo serveriu ir duomenų baze.

17.8 Koks yra geriausias nemokamas įrankis? SQL Server našumo monitorius?

Yra keletas puikių nemokamų stebėjimo įrankių SQL Server spektaklis:

  • „Windows“ našumo monitorius: Integruotas, išsamus ir patikimas
  • SSMS veiklos monitorius: Stebėjimas realiuoju laiku be papildomo diegimo
  • Išplėstiniai renginiai: Integruotas lengvas įvykių stebėjimas SQL Server
  • sp_WhoIsActive: Populiari nemokama saugoma procedūra išsamiam veiklos stebėjimui
  • DBA brūkšnys: Atvirojo kodo stebėjimo įrankis su išsamiomis funkcijomis
  • SQL STEBĖJIMAS: Atvirojo kodo programinė įranga su beveik realiuoju laiku stebima funkcija

Dėl most organizacijose „Performance Monitor“ kartu su SSMS įrankiais ir „sp_WhoIsActive“ suteikia puikias stebėjimo galimybes be jokių papildomų išlaidų.ost.

17.9 Kaip eksportuoti „PerfMon“ duomenis analizei?

Eksportuokite našumo monitoriaus duomenis naudodami šiuos metodus:

Eksportuoti į CSV:

  1. Atidarykite našumo monitorių su įkeltu žurnalo failu
  2. Dešiniuoju pelės mygtuku spustelėkite grafiką ir pasirinkite Įrašyti duomenis kaip
  3. Pasirinkti Tekstinis failas (atskirtas kableliais) (.csv)
  4. Pasirinkite vietą ir išsaugokite
  5. Atidaryti programoje „Excel“ analizei

Naudokite „Relog“ komandą:

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

Ši komandinės eilutės programa konvertuoja dvejetainius žurnalų failus (.blg) į CSV formatą, kad juos būtų lengviau analizuoti skaičiuoklių programose.

17.10 Kada turėčiau naudoti trečiųjų šalių stebėjimo įrankius, o ne integruotas parinktis?

Apsvarstykite trečiųjų šalių įrankius, kai:

  • Didelio kiekio valdymas SQL Server atvejų (10+)
  • Reikalingas centralizuotas stebėjimas keliuose duomenų centruose
  • Reikalingos pažangios funkcijos, tokios kaip nuspėjamoji analizė ar anomalijų aptikimas
  • Norima integruoto įspėjimo su incidentų valdymo sistemomis
  • Reikalavimas teikti atitikties ataskaitas ir atlikti istorinę analizę
  • Trūksta DBA išteklių, skirtų kurti ir prižiūrėti individualius sprendimus
  • Heterogeninių duomenų bazių aplinkų stebėjimas (SQL Server, Oracle, „MySQL“ ir kt.)

Integruoti įrankiai puikiai tinka mažesnėms aplinkoms arba kai turite kvalifikuotus duomenų bazių administratorius, kurie gali kurti individualius stebėjimo sprendimus. Trečiųjų šalių įrankiai suteikia vertės dėl laiko taupymo, pažangių funkcijų ir profesionalios pagalbos.

18. Papildomi ištekliai

18.1 Oficiali dokumentacija

„Microsoft“ teikia išsamią dokumentaciją, skirtą SQL Server našumo monitorius:

18.2 Rekomenduojami įrankiai ir atsisiuntimai

Būtiniausios priemonės, skirtos SQL Server našumo monitorius:

  • PAL įrankis: https://github.com/clinthuffman/PAL
  • sp_WhoIsActive: http://whoisactive.com/
  • DBA brūkšnys: https://dbadash.com/
  • SQL STEBĖJIMAS: https://github.com/marcingminski/sqlwatch
  • Pirmosios pagalbos rinkinys (Brentas Ozaras): https://www.brentozar.com/first-aid/
  • SQL Server Valdymo studija: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Bendruomenės ištekliai

Mokykitės iš SQL Server bendruomenė:

  • SQL Server Centrinis: https://www.sqlservercentral.com/
  • Brento Ozaro tinklaraštis: https://www.brentozar.com/blog/
  • SQL namelis: https://www.sqlshack.com/
  • MSSQL patarimai: https://www.mssqltips.com/
  • „Reddit“ r/SQLServer: https://www.reddit.com/r/SQLServer/
  • kamino Perpildyta SQL Server žyma: https://stackoverflow.com/questions/tagged/sql-server

Šiuose ištekliuose pateikiami vadovėliai, trikčių šalinimo patarimai ir geriausios praktikos pavyzdžiai iš patyrusių SQL Server profesionalams. Dalyvavimas bendruomenės forumuose padeda mokytis iš kitų patirties ir dalytis savo žiniomis.


Apie Autorius:

Yuan Sheng yra vyresnysis duomenų bazių administratorius (DBA), turintis daugiau nei 10 metų patirtį SQL Server aplinkose ir įmonių duomenų bazių valdyme. Jis sėkmingai išsprendė šimtus duomenų bazių atkūrimo scenarijų finansinių paslaugų, sveikatos priežiūros ir gamybos organizacijose.

Yuan specializuojasi SQL Server duomenų bazių atkūrimas, didelio prieinamumo sprendimai ir našumo optimizavimas. Jo didelė praktinė patirtis apima kelių terabaitų duomenų bazių valdymą, diegimą Visada prieinamumo grupėsir kuriant automatizuotas atsarginių kopijų kūrimo ir atkūrimo strategijas, skirtas kritiškai svarbioms verslo sistemoms.

Pasitelkdamas savo technines žinias ir praktinį požiūrį, Yuanas daugiausia dėmesio skiria išsamių vadovų, padedančių duomenų bazių administratoriams ir IT specialistams spręsti sudėtingas problemas, kūrimui. SQL Server efektyviai meta iššūkius. Jis neatsilieka nuo naujausių žinių SQL Server leidimus ir besivystančias „Microsoft“ duomenų bazių technologijas, reguliariai testuodamas atkūrimo scenarijus, siekdamas užtikrinti, kad jo rekomendacijos atitiktų geriausią realią praktiką.

Turite klausimų apie SQL Server atkūrimo ar reikia papildomų duomenų bazės trikčių šalinimo nurodymų? Yuan mielai atsiliepimai ir pasiūlymai už šių techninių išteklių tobulinimą.

Bendrinti dabar: