Kopīgot tūlīt:
Saturs slēpt

1. Ievads SQL Server Performance Monitor

1.1 Kas ir SQL Server Veiktspējas monitors?

SQL Server Veiktspējas monitors ir jūsu ierīces veiktspējas un stāvokļa izsekošanas, analīzes un pārvaldības process. SQL Server datubāzes. Tas ietver datu vākšanu un interpretāciju par dažādiem jūsu datubāzes sistēmas aspektiem, lai nodrošinātu optimālu veiktspēju, novērstu problēmas un uzturētu datubāzes veselību.

Veiktspējas uzraudzība ietver vaicājumu izpildes laiku, resursu izmantošanas, indeksu veiktspējas, bloķēšanas un strupceļu, kā arī datubāzes izaugsmes modeļu izsekošanu. Šī nepārtrauktā uzraudzība palīdz administratoriem identificēt potenciālās problēmas, pirms tās ietekmē lietotājus vai uzņēmuma darbību.

1.2 Veiktspējas uzraudzības galvenās priekšrocības

Efektīvs SQL Server Veiktspējas monitors sniedz vairākas būtiskas priekšrocības:

  • Proaktīva problēmu noteikšana: Identificējiet un novērsiet iespējamās problēmas, pirms tās ietekmē lietotājus vai uzņēmuma darbību
  • Veiktspējas optimizācija: Nosakiet vājās vietas un neefektivitāti, lai uzlabotu kopējo datubāzes veiktspēju
  • Jaudas plānošana: Prognozēt resursu vajadzības un plānot turpmāko izaugsmi, pamatojoties uz vēsturiskiem datiem
  • Atbilstība un drošība: Nodrošināt atbilstību normatīvajām prasībām un atklāt aizdomīgas darbības

1.3 Biežākās veiktspējas problēmas

Bez pienācīga SQL datubāzes veiktspējas monitora organizācijas saskaras ar vairākiem riskiem:

  • Negaidīta dīkstāve, kas traucē uzņēmuma darbību
  • Slikta lietojumprogrammu veiktspēja, kas ietekmē lietotāja pieredzi
  • Datu zudums vai sabojāšana
  • Neefektīva resursu izmantošana, kas rada nevajadzīgas izmaksas
  • Apmierināti lietotāji un iespējamie ieņēmumu zaudējumi

Saskaņā ar 2023. gada IDC pētījumu 65 % datubāzes veiktspējas problēmu rodas sliktas uzraudzības vai optimizācijas prakses dēļ.

2. Windows veiktspējas monitora (PerfMon) izpratne

2.1 Kas ir Windows veiktspējas monitors?

Windows veiktspējas monitors (PerfMon) ir iebūvēts Windows rīks, kas uzrauga sistēmas resursus un lietojumprogrammu veiktspēju. SQL Server administratoriem PerfMon sniedz nenovērtējamu ieskatu gan operētājsistēmā, gan SQL Server metrikas, padarot to par būtisku visaptverošai veiktspējas analīzei.

Windows veiktspējas monitors (PerfMon)

PerfMon regulāri mēra veiktspējas statistiku un saglabā šo statistiku failos vēlākai analīzei. Datu bāzes administratori var izvēlēties laika intervālu, faila formātu un to, kuru statistiku uzraudzīt. Rīks nav SQL Server-specifisks — sistēmas administratori to izmanto, lai uzraudzītu pašu Windows, Exchange, failu serverus un jebkuru lietojumprogrammu, kurā var rasties sastrēgumi.

2.2 Veiktspējas monitora palaišana

Performance Monitor var palaist, izmantojot vairākas metodes:

  1. Noklikšķiniet mājas, ierakstiet PerfMon Meklēšanas lodziņā noklikšķiniet uz “Performand Monitor” meklēšanas rezultātos:
    Windows meklēšanas lodziņā meklējiet un palaidiet PerfMon.
  2. prese Windows + R, ierakstiet PerfMonun nospiediet ienākt
    Palaidiet PerfMon no Windows palaišanas loga.
  3. Virzīties uz kontroles panelis -> Sistēma un drošība -> Administratīvie rīki -> Performance Monitor
    Palaidiet PerfMon no vadības paneļa -> Sistēma un drošība -> Administratīvie rīki -> Veiktspējas monitors

3. būtisks SQL Server Veiktspējas skaitītāji

3.1 Atmiņas veiktspējas skaitītāji

Atmiņas skaitītāji ir kritiski svarīgi uzraudzībai SQL Server veiktspēju, jo tie norāda, vai jūsu datubāzei ir pietiekami daudz atmiņas resursu.

Pieejamie MB

Šis skaitītājs parāda fiziskās atmiņas apjomu, kas ir nekavējoties pieejams piešķiršanai. Tam vajadzētu palikt diezgan nemainīgam un ideālā gadījumā tam nevajadzētu kristies zem 4096 MB. Zemas vērtības var norādīt, ka SQL Servermaksimālās atmiņas iestatījums tiek atstāts pēc noklusējuma vai navSQL Server lietojumprogrammas patērē atmiņu.

Lapas paredzamais dzīves ilgums

Lapas dzīves ilgums mēra, cik ilgi (sekundēs) lapa atrodas bufera krātuvē bez atsauces. Normāla vērtība ir 300 sekundes vai ilgāk. Zemākas vērtības norāda uz atmiņas noslodzi un pārmērīgu bufera apgrozījumu, samazinot kešatmiņas efektivitāti.

Bufera kešatmiņas trāpījumu attiecība

Šis skaitītājs norāda to datu pieprasījumu procentuālo daļu, uz kuriem tiek atbildēts, izmantojot SQL bufera kešatmiņu (atmiņu), nevis lasot no diska. Parasti tas sasniedz vai pārsniedz 99 %. Zemākas vērtības norāda, ka SQL Server nepieciešams vairāk atmiņas vai arī tas joprojām iesilst pēc restartēšanas.

Atmiņas dotācijas gaida

Tas parāda procesu skaitu, kas gaida atmiņu. SQL ServerNormālos apstākļos šai vērtībai pastāvīgi jābūt 0. Augstākas vērtības norāda uz nepietiekamu atmiņas piešķiršanu. SQL Server.

Mērķa servera atmiņa salīdzinājumā ar kopējo servera atmiņu

Mērķa servera atmiņa norāda ideālo atmiņas apjomu. SQL Server vēlas izmantot. Kopējā servera atmiņa parāda, cik SQL Server pašlaik izmanto. Šo vērtību attiecībai jābūt aptuveni 1. Būtiskas atšķirības var liecināt par atmiņas noslodzi vai nepietiekamu pieejamo atmiņu.

3.2 Procesora veiktspējas skaitītāji

CPU skaitītāji palīdz noteikt procesora vājās vietas un saprast, kā tās darbojas. SQL Server izmanto skaitļošanas resursus.

Procesora laiks (%)

Tas mēra procentuālo daļu no pagājušā laika, ko procesors pavada, izpildot pavedienus, kas nav dīkstāvē. Aktīvos serveros vērtības var sasniegt 100%, bet ilgstoša izmantošana virs 70–75% parasti norāda uz lietotāju veiktspējas problēmām. Trūkstoši vai nepietiekami indeksi bieži vien izraisa augstu centrālā procesora noslodzi.

Privileģētā laika %

Procesora laiks ir sadalīts lietotāja režīma un privilēģētā (kodola) režīma apstrādē. Visa piekļuve diskam un ievadizvade notiek kodola režīmā. Ja šis skaitītājs pārsniedz 25%, sistēma, visticamāk, veic pārāk daudz ievadizvades. Normālās vērtības svārstās no 5% līdz 10%.

Procesora rindas garums

Šis skaitītājs rāda pavedienus, kas gaida centrālā procesora resursus. Vērtības pastāvīgi ir lielākas par 1 (izņemot laikā SQL Server rezerves saspiešana) norāda uz centrālā procesora slodzi. Tas bieži nozīmē, ka datorā ir instalētas citas lietojumprogrammas SQL Server mašīna, kas pārkāpj labāko praksi.

Konteksta slēdži/sekundē

Tas mēra, cik bieži procesors pārslēdzas starp pavedieniem. Pārmērīga konteksta pārslēgšana var ietekmēt veiktspēju un norāda uz lielu sistēmas slodzi.

3.3 Diska I/O veiktspējas skaitītāji

Disku skaitītāji ir būtiski SQL veiktspējas uzraudzībai, jo disku I/O bieži kļūst par galveno sašaurinājumu datubāzu sistēmās.

% Diska laiks

Tas reģistrē laika procentuālo daļu, kurā disks bija aizņemts ar lasīšanas/rakstīšanas darbībām. Vērtības pastāvīgi virs 85% norāda uz I/O sastrēgumu. Tā kā disks ir daudz lēnāks nekā atmiņa, šī rādītāja samazināšana uzlabo veiktspēju.

Vid. diska sekundes/lasīšana un vid. diska sekundes/rakstīšana

Šie skaitītāji mēra lasīšanas un rakstīšanas operāciju vidējo laiku (sekundēs). Ja vidējās vērtības pārsniedz 10–20 ms, diskam datu apstrāde aizņem pārāk ilgu laiku. Darījumu žurnāla diskdziņiem ir nepieciešama īpaši ātra rakstīšanas veiktspēja.

Diska rindas garums

Šeit ir redzami neapstiprināti lasīšanas/rakstīšanas pieprasījumi diskā. Vērtības, kas pastāvīgi pārsniedz 2 (vai 2 uz disku RAID masīvu gadījumā), norāda, ka disks nespēj tikt galā ar I/O pieprasījumiem.

Diska baiti/sekundē

Tas uzrauga datu pārsūtīšanas ātrumu uz/no diska. Ja tas pārsniedz diska nominālo ietilpību, dati sāk uzkrāties, ko norāda palielināts diska rindas garums.

Diska pārsūtījumi/sekundē

Tas izseko diskā veikto lasīšanas/rakstīšanas darbību skaitu. SQL Server Piekļuve datiem parasti ir nejauša, kas ir lēnāka diska galviņas kustības dēļ. Pārliecinieties, vai šī vērtība nepārsniedz jūsu diska maksimālās jaudas ierobežojumu (parasti 100/sekundē standarta diskdziņiem).

3.4 SQL Server Konkrēti skaitītāji

3.4.1 Bufera pārvaldnieka skaitītāji

Bufera pārvaldnieka skaitītāju uzraugs SQL Serveratmiņas bufera darbības:

  • Lapas lasīšanas/sekundē: Fiziskās datubāzes lapu nolasījumu kopējais skaits
  • Lapas rakstīšanas/sekundē: Fiziskās datubāzes lapas ierakstīšanas reižu kopskaits
  • Slinks raksta/sekundē: Slinkā rakstītāja ierakstīto buferu skaits atmiņas atbrīvošanai
  • Kontrolpunkta lappuses/sekundē: Kontrolpunkta vai citu darbību rezultātā iztīrītas lapas, kas prasa iztīrīt visas netīrās lapas

3.4.2 SQL statistikas skaitītāji

Šie skaitītāji sniedz ieskatu SQL Server vaicājumu apstrāde:

  • Pieprasījumu partija/sekundē: Servera saņemto SQL partijas pieprasījumu skaits. Tas kalpo kā servera aktivitātes etalons.
  • SQL kompilācijas/sekundē: SQL kompilāciju skaits. Jābūt ne vairāk kā 10% no kopējā partijas pieprasījumu skaita sekundē.
  • SQL atkārtotas kompilācijas/sekundē: SQL atkārtotu kompilāciju skaits. Tam jābūt arī 10% vai mazāk no kopējā partijas pieprasījumu skaita sekundē.

3.4.3 Vispārīgie statistikas skaitītāji

  • Lietotāja savienojumi: Sistēmai pieslēgto lietotāju skaits. Izmanto kā etalonu, lai laika gaitā izsekotu savienojumu skaita pieaugumu.
  • Bloķētie procesi: Pašreizējais bloķēto procesu skaits. Ideālā gadījumā tam vajadzētu būt 0.

3.4.4 Atmiņas pārvaldnieka skaitītāji

  • Atmiņas piešķīrumi gaida apstiprinājumu: Kopējais procesu skaits, kas gaida darbvietas atmiņas piešķiršanu. Ideālā gadījumā tam vajadzētu būt 0.

4. Veiktspējas monitora iestatīšana SQL Server(Windows Vista/Server 2008 un jaunākas versijas)

Pirmkārt, mums ir jāizveido konteiners, lai vieglāk pārvaldītu skaitītājus:

  • Operētājsistēmā Windows Vista/Server 2008 un jaunākās versijās šajā sadaļā varat izveidot datu kolekcionāru kopas.
  • Operētājsistēmām Windows XP / Server 2003 un vecākām versijām skaitītāju žurnālus var izveidot nākamā sadaļa.

4.1 Kas ir datu kolekcionāru kopas?

Datu kolektoru kopas organizē veiktspējas skaitītājus, notikumu izsekošanas datus un sistēmas konfigurācijas informāciju vienā kolekcijas vienībā. Tās nodrošina lielāku elastību nekā vienkārši skaitītāju žurnāli un ļauj automatizēt, plānot datu vākšanu visaptverošai SQL datubāzes veiktspējas uzraudzībai.

4.2 Datu kolektoru kopas izveide

Izveidojiet pielāgotu datu kolektoru kopu uzraudzībai SQL Server veiktspējas skaitītāji:

  1. Atvērt veiktspējas monitoru
  2. paplašināt Datu kolektoru komplekti
  3. Right-click Lietotājs definēts
  4. Izvēlēties Jaunums -> Datu savācēja komplekts
    Izveidojiet jaunu datu kolektoru kopu PerfMon
  5. Ievadiet aprakstošu nosaukumu (piemēram, “SQL Server Veiktspējas rādītāji”)
  6. Izvēlēties Izveidot manuāli (Papildu)
    Iestatiet datu kolektoru kopas apraksta nosaukumu
  7. Noklikšķiniet Nākamā
  8. Pārbaudiet Izveidot datu žurnālus -> Veiktspējas skaitītājs
    Vednī “Izveidot jaunu datu kolektoru kopu” atlasiet Izveidot datu žurnālus -> Veiktspējas skaitītājs.
  9. Noklikšķiniet Nākamā
  10. Noklikšķiniet Pievienot lai izvēlētos skaitītājus
  11. Pievienot vēlamo SQL Server un sistēmas skaitītāji.
    Pievienojiet veiktspējas skaitītājus jaunajai datu kolektoru kopai.
  12. Noteikt Parauga intervāls
    • Regulārai uzraudzībai izmantojiet 1 minūti (60 sekundes)
    • Aktīvai problēmu novēršanai izmantojiet 15–30 sekundes
    • Izvairieties no ilgstošas ​​augstfrekvences datu uztveršanas, jo tā var ietekmēt veiktspēju un ģenerēt pārmērīgu datu apjomu.

    Iestatiet paraugu ņemšanas intervālu jaunajā datu kolektoru komplekta vednī.

  13. Noklikšķiniet Nākamā
  14. Izvēlieties žurnālu saglabāšanas vietu
    Jaunajā datu kolektoru kopas vednī iestatiet atrašanās vietu, kur saglabāt veiktspējas datus.
  15. Noklikšķiniet apdare, tiks izveidots jauns datu kolektoru komplekts.
  16. Pēc noklusējuma jaunais datu kolektoru komplekts būs NAV tiks palaists automātiski. Jums tas jāatrod kreisajā panelī sadaļā Veiktspēja -> Datu kolektoru komplekti -> Lietotājs definēts -> Jūsu datu apkopotājs, ar peles labo pogu noklikšķiniet uz tā un izvēlieties mājas
    Sāciet jaunu datu kolektoru kopu PerfMon.

4.3 Galvenie pievienojamie skaitītāji

  • Atmiņa -> Pieejamie MB
  • Fiziskais disks -> Vid. diska sekundes/lasīšanas laiks (visos gadījumos, izņemot _Kopā)
  • Fiziskais disks -> Vid. diska sekundes/rakstīšana (visos gadījumos, izņemot _Kopā)
  • Fiziskais disks -> Diska nolasījumi sekundē (visos gadījumos, izņemot _Kopā)
  • Fiziskais disks -> Diska ierakstīšanas reižu skaits sekundē (visos gadījumos, izņemot _Kopā)
  • Procesors -> Procesora laika procents (visi gadījumi, izņemot _Kopā)
  • SQLServer: Vispārīgā statistika -> Lietotāju savienojumi
  • SQLServer: Atmiņas pārvaldnieks -> Atmiņas piešķiršanas gaida apstiprinājumu
  • SQLServer: SQL statistika -> Pakešpieprasījumi/sekundē
  • SQLServer: SQL statistika -> SQL kompilācijas/sekundē
  • SQLServer: SQL statistika -> SQL rekompilācijas/sekundē
  • Sistēma -> Procesora rindas garums

4.4 Apturēšanas nosacījumu iestatīšana

Konfigurējiet apturēšanas nosacījumus, lai novērstu neierobežotu datu pieaugumu:

  1. Pēc datu kolektoru komplekta izveides ar peles labo pogu noklikšķiniet uz tā un atlasiet īpašības
  2. Noklikšķiniet Apturēšanas nosacījums tab
  3. dot iespēju Kopējais ilgums
  4. Iestatīt ilgumu uz 1 dienu (24 stundas)
  5. Noklikšķiniet OK ietaupīt

Iestatiet datu kolektora kopas apturēšanas nosacījumu

Tas nodrošina, ka žurnāls neaug pārāk liels un automātiski restartējas, ja tas ir ieplānots.

4.5 Datu vākšanas plānošana

Automatizējiet datu vākšanu, lai nodrošinātu konsekventu uzraudzību:

  1. Ar peles labo pogu noklikšķiniet uz datu kolektoru kopas un atlasiet īpašības
  2. Noklikšķiniet Ieplānot tab
  3. Noklikšķiniet Pievienot lai izveidotu jaunu grafiku
  4. Sākuma datuma un laika konfigurēšana
  5. Iestatīt atkārtošanās modeli (piemēram, katru dienu)
  6. Noklikšķiniet OK lai saglabātu grafiku

Datu kolektoru kopas grafika iestatīšana

Lai nodrošinātu automātisku startēšanu, konfigurējiet datu kolektoru komplektu tā, lai tas startētos servera startēšanas laikā, izveidojot startēšanas aktivizētāju Windows uzdevumu plānotājā.

5. Veiktspējas monitora iestatīšana SQL Server(Windows XP/Server 2003 un vecākas versijas)

Operētājsistēmā Windows XP / Server 2003 un vecākās versijās varat izveidot skaitītāju žurnālus, kas ļauj atlasīt veiktspējas skaitītāju kopu un periodiski reģistrēt tos failā.

5.1 Skaitītāju žurnālu izveide

Lai izveidotu jaunu skaitītāja žurnālu, veiciet tālāk norādītās darbības.

  1. Atvērt veiktspējas monitoru
  2. paplašināt Veiktspējas žurnāli un brīdinājumi kreisajā rūtī
  3. Right-click Skaitītāju žurnāli
  4. Izvēlēties Jauni žurnāla iestatījumi
  5. Nosauciet žurnālu ar sava datubāzes servera nosaukumu (piemēram, “ProductionSQL01”).
  6. Noklikšķiniet OK lai sāktu konfigurēšanu

Izveidojot atsevišķus skaitītāju žurnālus katram serverim, varat pārbaudīt veiktspēju atsevišķos serveros, vienlaikus neapkopojot datus par visiem serveriem.

5.2 Veiktspējas skaitītāju pievienošana

Pēc skaitītāju žurnāla izveides pievienojiet konkrētos veiktspējas skaitītājus, kurus vēlaties uzraudzīt:

  1. Noklikšķiniet Pievienot skaitītājus poga
  2. Mainiet datora nosaukumu, lai tas norādītu uz jūsu SQL Server piemērs
  3. prese Tab lai ielādētu pieejamos veiktspējas objektus
  4. Nolaižamajā izvēlnē atlasiet veiktspējas objektu (piemēram, atmiņa)
  5. Izvēlieties konkrētus skaitītājus no saraksts
  6. Atlasiet instances, ja piemērojams (piemēram, atsevišķus procesorus vai diskus)
  7. Noklikšķiniet Pievienot lai iekļautu skaitītāju
  8. Atkārtojiet ar visiem vēlamajiem skaitītājiem
  9. Noklikšķiniet Aizvērt kad pabeigts

5.3 Paraugu intervālu konfigurēšana

Parauga intervāls nosaka, cik bieži Performance Monitor apkopo datus. Konfigurējiet atbilstošus intervālus atbilstoši savām uzraudzības vajadzībām:

  1. Skaitītāja žurnāla īpašībās atrodiet Parauga dati ik pēc
  2. Iestatiet intervālu (pēc noklusējuma ir 15 sekundes)
  3. Sākotnējai uzraudzībai izmantojiet 1 minūtes intervālus ikdienas savākšanai.
  4. Problēmu novēršanai īsiem impulsiem izmantojiet 15–30 sekunžu intervālus
  5. Noklikšķiniet OK pieteikties

Atcerieties, ka mazāki intervāli ģenerē vairāk datu, kurus var būt grūtāk atveidot un analizēt. Lielāki intervāli var palaist garām svarīgus datu pieauguma impulsus. Līdzsvarojiet datu granularitāti ar krātuves un analīzes prasībām.

5.4 Žurnālfailu konfigurēšana

Pareiza žurnālfaila konfigurācija nodrošina datu efektīvu un pieejamu glabāšanu:

  1. Noklikšķiniet Log failus cilne skaitītāja žurnāla īpašībās
  2. Mainīt žurnālfaila tipu uz Teksta fails (atdalīts ar komatiem) vienkāršai importēšanai no Excel
  3. Noklikšķiniet Konfigurēt
  4. Iestatiet faila ceļu uz noteiktu atrašanās vietu (piemēram, koplietotu PerformanceLogs mapi).
  5. Noklikšķiniet OK apstiprināt

Žurnālu glabāšanai izmantojiet tīklā pieejamu koplietošanas resursu, lai varētu attālināti piekļūt failiem un koplietot tos ar citiem lietotājiem.

5.5 Akreditācijas datu iestatīšana

Konfigurējiet atbilstošus akreditācijas datus, lai Performance Monitor varētu piekļūt attāliem datiem SQL Server gadījumi:

  1. Skaitītāja žurnāla īpašībās atrodiet Palaist kā
  2. Ievadiet savu domēna lietotājvārdu šādā formātā: DOMĒNS\lietotājvārds
  3. Noklikšķiniet Uzstādīt paroli
  4. Ievadiet un apstipriniet savu paroli
  5. Noklikšķiniet OK ietaupīt

Tas ļauj PerfMon pakalpojumam apkopot statistiku, izmantojot jūsu domēna atļaujas, nevis savus akreditācijas datus.

6. Veiktspējas monitora datu analīze

6.1 Žurnālfailu skatīšana veiktspējas monitorā

Veiktspējas monitors var parādīt vēsturiskos datus no saglabātajiem žurnālfailiem:

  1. Atvērt veiktspējas monitoru
  2. Kreisajā rūtī noklikšķiniet uz Uzraudzības rīki -> Performance Monitor.
  3. Ar peles labo pogu noklikšķiniet jebkurā vietā grafika apgabalā
  4. Izvēlēties īpašības
    Atveriet PerfMon īpašības, ar peles labo pogu noklikšķinot jebkurā grafika apgabala vietā.
  5. Noklikšķiniet avots tab
  6. Izvēlēties Žurnāla faili radiopoga
  7. Noklikšķiniet Pievienot
  8. Dodieties uz savu žurnālfailu (.blg vai .csv)
  9. Atlasiet failu un noklikšķiniet uz atvērts
    Iestatiet žurnālfailu kā grafikas avotu PerfMon.
  10. Izmantot Laika diapazons slīdni, lai atlasītu analizējamo periodu
  11. Noklikšķiniet OK , lai aizvērtu īpašību dialoglodziņu
  12. Noklikšķiniet uz zaļās pluszīmes ikonas, lai pievienotu skaitītājus no žurnālfaila.
    Noklikšķiniet uz zaļās pluszīmes ikonas, lai pievienotu skaitītājus no žurnālfaila PerfMon.
  13. Atlasiet vēlamos skaitītājus, ko parādīt
    Pievienojiet grafikam vēlamos skaitītājus PerfMon.
  14. Noklikšķiniet OK

Grafikā tagad tiks parādīti žurnālfaila vēsturiskie dati. Izmantojiet laika diapazona slīdni sadaļā “Īpašības”, lai sašaurinātu konkrētus laika periodus detalizētai analīzei.

6.2 Datu eksportēšana uz Excel

Programma Excel nodrošina jaudīgas veiktspējas skaitītāju datu analīzes iespējas:

  1. Atveriet veiktspējas monitoru ar ielādētu žurnālfailu
  2. Ar peles labo pogu noklikšķiniet jebkurā vietā grafika apgabalā
  3. Izvēlēties Saglabāt datus kā
  4. Izvēlieties faila atrašanās vietu
  5. Izvēlēties Teksta fails (atdalīts ar komatiem) (.csv) no nolaižamās izvēlnes
  6. Noklikšķiniet IETAUPI
  7. Atveriet CSV failu programmā Excel

Eksportējiet datus uz failu PerfMon.

Formatējiet eksportētos datus labākai analīzei:

  1. Izdzēsiet pustukšo 2. rindu un notīriet šūnu A1
  2. Formatēt A kolonnu kā datumu/laiku
  3. Formatējiet skaitliskās kolonnas ar nulles decimāldaļām un tūkstošu atdalītāju
  4. Atrast un aizstāt serveru nosaukumus galvenēs (piemēram, aizstāt “\\SERVERNAME” ar tukšu lauku)
  5. Notīriet objektu nosaukumus galvenēs (piemēram, “Atmiņa”, “Fiziskais disks”, “Procesors”)
  6. Samaziniet galvenes fonta lielumu līdz 8 punktiem, lai nodrošinātu labāku redzamību

6.3 Skaitītāju vērtību interpretācija

6.3.1 Atmiņas skaitītāja analīze

Analizējot atmiņas skaitītājus, meklējiet šos rādītājus:

  • Pieejamie MB: Vajadzētu pastāvīgi palikt virs 4096 MB
  • Lapas paredzamais dzīves ilgums: Vērtības virs 300 sekundēm norāda uz veselīgu atmiņu. Zemākas vērtības norāda uz atmiņas noslodzi.
  • Bufera kešatmiņas trāpījumu attiecība: Jāsasniedz vai jāpārsniedz 99 %. Zemākas vērtības norāda uz pārmērīgu diska nolasīšanas apjomu.
  • Atmiņas piešķīrumi gaida apstiprinājumu: Vienmēr jābūt 0. Jebkura pozitīva vērtība norāda uz atmiņas trūkumu.

6.3.2 CPU skaitītāja analīze

CPU veiktspējas rādītāji ietver:

  • Procesora laiks (%): Ilgstoša lietošana virs 75% norāda uz veiktspējas problēmām. Pieaugumi līdz 100% ir normāli, taču tiem nevajadzētu saglabāties.
  • Procesora rindas garums: Vērtības virs 1 norāda centrālā procesora slodzi. Pārbaudiet uzdevumu pārvaldnieku, lai noteiktu, kuri procesi patērē centrālo procesoru.
  • Privilēģētais laiks (%): Vajadzētu palikt 5–10 % robežās. Vērtības virs 25 % liecina par pārmērīgu I/O darbību skaitu.

6.3.3 Diska skaitītāja analīze

Diska veiktspējas sliekšņi:

  • Vid. diska ilgums sekundēs/lasīšanai un rakstīšanai: Vajadzētu palikt zem 10–20 ms. Augstākas vērtības norāda uz lēnām disku apakšsistēmām.
  • Diska rindas garums: Vērtības pastāvīgi virs 2 (vai 2 uz disku RAID sistēmā) norāda uz I/O sastrēgumiem.
  • % Diska laiks: Ilgstoša vērtība virs 85% norāda uz diska piesātinājumu

6.4 Formulu un statistikas izmantošana

Pievienojiet statistikas formulas programmā Excel ātrai analīzei:

  1. Ievietojiet 7 tukšas rindas izklājlapas augšdaļā
  2. Pievienojiet etiķetes A kolonnā: Vidējais, Mediāna, Min, Maks, Standartnovirze
  3. Šūnā B2 ievadiet: =AVERAGE(B9:B100) (pielāgojiet B100 pēdējai datu rindai)
  4. Šūnā B3 ievadiet: =MEDIĀNA(B9:B100)
  5. Šūnā B4 ievadiet: =MIN(B9:B100)
  6. Šūnā B5 ievadiet: =MAX(B9:B100)
  7. Šūnā B6 ievadiet: =STDEV(B9:B100)
  8. Kopēt formulas visās skaitītāja kolonnās
  9. Atlasiet šūnu B9 un nospiediet taustiņu kombināciju Alt+W+F+Enter, lai iesaldētu rūtis

Šī statistika palīdz noteikt tendences, novirzes un normālus darbības diapazonus katram skaitītājam.

7. Žurnālu veiktspējas analīzes (PAL) rīks

7.1 Ievads PAL valodā

Performance Analysis for Logs (PAL) ir bezmaksas rīks, ko izstrādājis Klints Hafmans, kas analizē Performance Monitor žurnālus un ģenerē HTML pārskatus ar sliekšņu analīzi. PAL salīdzina jūsu veiktspējas datus ar zināmiem sliekšņiem un sniedz detalizētus ieteikumus. SQL Server veiktspējas optimizācija.

Lejupielādējiet PAL no GitHub repozitorija: https://github.com/clinthuffman/PAL External Link

7.2 PAL iestatīšana

Instalējiet PAL, veicot šādas darbības:

  1. Lejupielādējiet PAL iestatīšanas failu no GitHub
  2. Palaidiet instalētāju
  3. Noklikšķiniet Nākamā sveiciena ekrānā
  4. Pārskatiet un pieņemiet instalācijas direktoriju
  5. Noklikšķiniet Nākamā turpināt
  6. Noklikšķiniet instalēt lai sāktu uzstādīšanu
  7. Pagaidiet instalēšanu, lai pabeigtu
  8. Noklikšķiniet apdare

7.3 Žurnālfailu apstrāde ar PAL

Analizējiet veiktspējas monitora žurnālus, izmantojot PAL:

  1. Palaidiet PAL no izvēlnes Sākt vai instalācijas direktorijā.
  2. Noklikšķiniet Skaitītāja žurnāls tab
  3. Noklikšķiniet Pārlūkot lai atlasītu savu .blg failu
  4. Dodieties uz savu veiktspējas monitora žurnālfailu
  5. Noklikšķiniet atvērts
  6. Noklikšķiniet Sliekšņa fails tab
  7. Nolaižamajā izvēlnē atlasiet sliekšņa failu (piemēram, “SQL Server 2016 ”)
  8. Noklikšķiniet Jautājumi tab
  9. Atbildiet uz jautājumiem par jūsu sistēmas konfigurāciju
  10. Norādiet, vai jūsu SQL Server ir OLTP vai datu noliktava
  11. Ievadiet kopējo pieejamo RAM
  12. Noklikšķiniet Izvades opcijas tab
  13. Atlasiet HTML atskaites izvades direktoriju
  14. Pārbaudiet HTML izvades formāts
  15. Noklikšķiniet Izpildīt tab
  16. Pārskatiet savas izvēles
  17. Pārbaudiet Sākt izpildi tūlīt
  18. Noklikšķiniet apdare

7.4 PAL ziņojumu analīze

Pēc analīzes pabeigšanas PAL ģenerē HTML atskaiti, kurā ir:

  • Veiktspējas problēmu kopsavilkums
  • Detalizēta skaitītāju analīze ar diagrammām
  • Sliekšņa pārkāpumi ir iezīmēti krāsā
  • Konkrēti ieteikumi katram jautājumam
  • Vēsturiskās tendences un modeļi

Ziņojumā nopietnības norādīšanai tiek izmantota krāsu kodēšana: sarkana kritiskām problēmām, dzeltena brīdinājumiem un zaļa veselīgiem rādītājiem. Pārskatiet katru sadaļu, lai izprastu veiktspējas vājās vietas un ievērotu PAL optimizācijas ieteikumus.

8. Alternatīva SQL Server Uzraudzības rīki

8.1 Iebūvēts SQL Server darbarīki

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor parāda reāllaika informāciju par SQL Server procesi un veiktspēja:

  1. atvērts SQL Server Management Studio (SSMS) un izveidojiet savienojumu ar servera instanci
  2. Ar peles labo pogu noklikšķiniet uz servera nosaukuma objektu pārlūkā
  3. Izvēlēties Activity Monitor
    Sākt aktivitāšu monitoru iekšā SQL Server Vadības studija.

Aktivitāšu monitors rāda procesus, resursu gaidīšanas laikus, datu failu ievades/izvades darbības un nesen veiktus dārgus vaicājumus. Tas sniedz ātru ieskatu pašreizējā datubāzes aktivitātē, bet neuzglabā vēsturiskos datus.

Aktivitāšu monitors SQL Server

8.1.2 SQL Server Veiktspējas informācijas panelis

SQL Server Management Studio ietver iebūvētus veiktspējas pārskatus:

  1. In SQL Server Management Studio (SSMS), ar peles labo pogu noklikšķiniet uz SQL Server instance objektu pārlūkā
  2. Izvēlēties Ziņojumi -> Standarta ziņojumi
  3. Izvēlieties no pieejamajām atskaitēm, piemēram, Veiktspējas informācijas panelis
    Atvērt veiktspējas informācijas paneli sadaļā SQL Server Vadības studija.

Veiktspējas informācijas panelis sniedz vizuālu ieskatu SQL Server instances veiktspēju, tostarp sistēmas centrālā procesora noslodzi, pašreizējos gaidīšanas pieprasījumus un veiktspējas rādītājus. Piekļūstiet tai, izmantojot izvēlni Standarta pārskati.

Veiktspējas informācijas panelis SQL Server Vadības studija

8.1.3 SQL Server Profils

SQL Server Profils uztver un analizē SQL Server notikumi, piemēram, vaicājumu izpilde, darījumu operācijas un pieteikšanās aktivitātes.

Lai sāktu SQL Server Profilētājs:

  1. In SQL Server Vadības studija, noklikšķiniet uz darbarīki -> SQL Server Profils
    mājas SQL Server Profilētājs iekšā SQL Server Vadības studija.

Profiler rada ievērojamas veiktspējas izmaksas, tāpēc izmantojiet to apdomīgi un vēlams ārpus noslodzes stundām. Vairumā scenāriju paplašinātie notikumi nodrošina labāku veiktspēju ar mazāku ietekmi.

SQL Server Profils

8.1.4 Pagarināti notikumi

Paplašināti notikumi ir iebūvēta viegla veiktspējas uzraudzības sistēma SQL ServerTas aizstāj SQL Server Profilētājs ar labāku veiktspēju un zemākām izmaksām.

Galvenās funkcijas ietver:

  • Konkrētu notikumu detalizēta uzraudzība
  • Minimāla ietekme uz veiktspēju
  • Pielāgojamas pasākumu sesijas
  • Integrācija ar SSMS un citiem rīkiem
  • Atbalsts sarežģītai filtrēšanai un apkopošanai

Izveidojiet paplašinātas notikumu sesijas, izmantojot SSMS:

  1. In Objektu pētnieks, paplašiniet savu serveri un dodieties uz Vadība -> Paplašināti notikumi -> Sesijas
  2. Ar peles labo pogu noklikšķiniet uz Sessions Un izvēlies Jaunas sesijas vednis
    Sākt jaunu paplašināto notikumu sesiju sadaļā SQL Server Vadības studija.
  3. Izpildiet norādījumus, lai sāktu jaunu sesiju.

8.1.5 Dinamiskās pārvaldības skati (DMV)

DMV sniedz detalizētu informāciju par servera stāvokli, lai uzraudzītu tā stāvokli, diagnosticētu problēmas un uzlabotu veiktspēju. Galvenie DMV ietver:

  • sys.dm_exec_query_stats: Vaicājumu veiktspējas statistika
  • sys.dm_os_wait_stats: Gaidīšanas veidi, kas ietekmē servera veiktspēju
  • sys.dm_os_performance_counters: SQL Server veiktspējas skaitītāja dati
  • sys.dm_exec_pieprasījumi: Pašlaik tiek izpildīti pieprasījumi
  • sys.dm_exec_sessions: Aktīvas lietotāju sesijas

Veiciet vaicājumus šajos skatos, izmantojot T-SQL, lai piekļūtu reāllaika veiktspējas datiem un vēsturiskajiem rādītājiem.

Pamata lietošana

-- 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šo pušu uzraudzības risinājumi

Redgate SQL monitors

Redgate SQL Monitor specializējas uzraudzībā SQL Server un Azure SQL datubāzes vides. Tas nodrošina visa īpašuma mēroga uzraudzību, pielāgojamus brīdinājumus un informācijas paneļus, detalizētas pārskatu veidošanas iespējas un integrāciju ar citiem Redgate rīkiem.

Redgeits SQL Server Kontrolēt

SolarWinds SQL Server Uzraudzības rīks

Saules vēji SQL Server Uzraudzības rīks, kas pazīstams arī kā SQL Sentry, ir paredzēts, lai diagnosticētu, atrisinātu un novērstu nopietnas veiktspējas problēmas ar SQL Server.

SolarWinds SQL Server Uzraudzības rīks

IDERA SQL Server Veiktspējas uzraudzības rīks

IDERA SQL diagnostikas pārvaldnieks ir jaudīgs SQL Server veiktspējas uzraudzības rīks, kas paredzēts, lai palīdzētu proaktīvi uzraudzīt veiktspēju, veikt diagnostiku un regulēšanu.

IDERA SQL Server Veiktspējas uzraudzības rīks

Lietojumprogrammu pārvaldnieka SQL uzraudzība

Lietojumprogrammu pārvaldnieks piedāvā Microsoft SQL Server Uzraudzības rīks, kas nodrošina noderīgus IT risinājumus. Tas ir izstrādāts, lai pārraudzītu SQL datu bāzu veiktspēju, vienlaikus identificējot kļūdas un atrisinot problēmas, kas var izraisīt organizācijas darbības apturēšanu.

Lietojumprogrammu pārvaldnieka SQL uzraudzība

8.3 Atvērtā pirmkoda uzraudzības rīki

DBA domuzīme

DBA Dash ir bezmaksas, atvērtā koda uzraudzības rīks, kas sniedz ieskatu SQL Server veselību, veiktspēju un aktivitāti. Tas ir īpaši noderīgi mazām un vidējām vidēm un ietver ikdienas DBA pārbaudes, veiktspējas uzraudzību un konfigurācijas izsekošanu.

SQLWATCH

SQLWATCH piedāvā decentralizētu, gandrīz reāllaika SQL Server uzraudzība ar 5 sekunžu granularitāti darba slodzes pieauguma fiksēšanai. Tā atbalsta Grafana reāllaika informācijas paneļiem un Power BI padziļinātai analīzei. Rīks nodrošina plašas konfigurācijas iespējas, nulles uzturēšanas prasības un neierobežotu mērogojamību.

Operators

Stack Exchange izstrādātais Opserver uzrauga vairākas sistēmas, tostarp SQL Server, Redis un Elasticsearch. Tas nodrošina “visu serveru” skatu, kurā redzama centrālā procesora, atmiņas, tīkla un aparatūras statistika visā jūsu infrastruktūrā.

sp_WhoIsActive

sp_WhoIsActive ir visaptveroša aktivitāšu uzraudzības saglabātā procedūra, ko izveidojis Adams Mačaniks. Tā darbojas ar visiem SQL Server versijas no 2005. gada līdz pašreizējām versijām, un to plaši izmanto SQL Server DBA reāllaika aktivitāšu uzraudzībai.

Lai izmantotu sp_WhoIsActive, lejupielādējiet to no http://whoisactive.com/, instalējiet to savā datubāzē un izpildiet:

EXEC sp_WhoIsActive

Procedūra parāda pašlaik izpildītos vaicājumus, gaidīšanas informāciju, bloķēšanas informāciju un resursu patēriņu.

9. Paraugprakse par SQL Server Performance Monitor

9.1 Veiktspējas bāzes rādītāju noteikšana

Veiktspējas bāzes līnijas nosaka jūsu uzņēmuma normālus darbības parametrus. SQL Server vide. Bez bāzes līnijām nevar noteikt, vai pašreizējie rādītāji norāda uz problēmām vai atspoguļo tipisku uzvedību.

Izveidojiet bāzes līnijas, izmantojot:

  1. Veiktspējas datu vākšana normālas darbības laikā vismaz vienu nedēļu
  2. Metriku fiksēšana gan pīķa stundās, gan ārpus tām
  3. Galveno skaitītāju tipisko vērtību dokumentēšana
  4. Sezonālo svārstību reģistrēšana, ja piemērojams
  5. Sākotnējo datu glabāšana salīdzināšanai ar turpmākajiem rādītājiem

Atjauniniet bāzes līnijas reizi ceturksnī vai pēc būtiskām infrastruktūras izmaiņām, lietojumprogrammu atjauninājumiem vai datubāzes modifikācijām.

9.2 Atbilstošu trauksmes sliekšņu iestatīšana

Konfigurējiet viedās robežvērtības, lai saņemtu jēgpilnus brīdinājumus, nepārslogojot sevi ar paziņojumiem:

  • Atmiņas piešķiršanas gaidīšanas režīmā > 0 norāda uz atmiņas noslodzi
  • Procesora rindas garums > 2 uz kodolu norāda uz centrālā procesora sastrēgumu
  • Diska sekundes/lasīšanas vai rakstīšanas ātrums > 20 ms norāda uz lēnu ievadizvadi.
  • Bloķētie procesi > 5 signalizē par strīda problēmām
  • Lapas paredzamais darbības laiks < 300 sekundes norāda uz atmiņas noslodzi

Pielāgojiet robežvērtības, pamatojoties uz jūsu bāzes datiem un specifiskajām darba slodzes īpašībām. Izmantojiet adaptīvās robežvērtības, kas ņem vērā normālas izmaiņas jūsu vidē.

9.3 Regulāra datu pārskatīšana un analīze

Plānojiet regulāras snieguma pārskatīšanas, lai noteiktu tendences un jaunās problēmas:

  • Katru dienu: pārskatiet augsta līmeņa rādītājus un jaunākos brīdinājumus
  • Katru nedēļu: veiciet padziļinātu veiktspējas tendenču analīzi
  • Mēnesī: ģenerējiet visaptverošus pārskatus un salīdziniet tos ar sākotnējām vērtībām
  • Reizi ceturksnī: Pārskatīt kapacitātes plānošanu un ilgtermiņa tendences

Dokumentējiet atradumus un laika gaitā sekojiet līdzi veiktspējas uzlabojumiem.

9.4 Balansēšanas uzraudzības virsizdevumi

Pati uzraudzība patērē resursus, tāpēc līdzsvarojiet datu vākšanu ar ietekmi uz veiktspēju:

  • Nepārtrauktai uzraudzībai izmantojiet 30–60 sekunžu intervālus
  • Aktīvai problēmu novēršanai izmantojiet tikai 15 sekunžu intervālus
  • Ierobežot datu savācēju Iestatiet ilgumu, lai izvairītos no pārmērīga datu apjoma
  • Saglabājiet žurnālus atsevišķos diskos no datubāzes failiem
  • Arhivējiet vecos veiktspējas datus, lai saglabātu pārvaldāmus failu izmērus

Pareizi konfigurējot, veiktspējas monitors rada minimālus papildu resursus, parasti mazāk nekā 2% no sistēmas resursiem.

9.5 Ilgtermiņa datu saglabāšana

Saglabājiet veiktspējas datus jēgpilnai tendenču analīzei un jaudas plānošanai:

  • Saglabājiet vismaz 1–2 gadu veiktspējas datus
  • Arhivējiet datus atsevišķā krātuvē pēc 3–6 mēnešiem
  • Saspiest vecākus žurnālfailus, lai ietaupītu vietu
  • Dokumentējiet visus būtiskos notikumus vai izmaiņas, kas ietekmē veiktspēju

Ņemot vērā veiktspējas skaitītāja datu relatīvi nelielo apjomu, to saglabāšana bezgalīgi bieži vien ir iespējama un vērtīga ilgtermiņa analīzei.

9.6 Integrācija ar DevOps praksi

Iekļaujiet datubāzes veiktspējas uzraudzību CI/CD cauruļvados:

  • Iekļaut datubāzes veiktspējas rādītājus izvietošanas validācijā
  • Automatizējiet veiktspējas testēšanu jaunām versijām
  • Pārliecinieties, ka koda izmaiņas negatīvi neietekmē veiktspēju
  • Izveidojiet veiktspējas kritērijus katrai versijai
  • Integrējiet uzraudzības brīdinājumus ar incidentu pārvaldības sistēmām

10. Biežāk sastopamo veiktspējas problēmu novēršana

10.1 CPU sastrēgumu identificēšana

CPU sastrēgumi izpaužas kā lēns vaicājumu atbildes laiks un augsta procesora noslodze. Veiciet šīs darbības, lai diagnosticētu CPU problēmas:

  1. Pārbaudiet procesora rindas garuma skaitītāju. Vērtības virs 2 uz kodolu norāda centrālā procesora noslodzi.
  2. Pārskatiet procesora laika procentuālo daļu. Ilgstoša vērtība virs 75% norāda uz centrālā procesora sastrēgumu.
  3. Attālā darbvirsma uz SQL Server
  4. Atvērt uzdevumu pārvaldnieku (Ctrl+Shift+Esc)
  5. Noklikšķiniet Procesi tab
  6. Pārbaudiet Rādīt visu lietotāju procesus
  7. Noklikšķiniet CPU kolonnas galvene, lai kārtotu pēc centrālā procesora noslodzes
  8. Nosakiet, kuri procesi patērē centrālā procesora resursus

Ja navSQL Server lietojumprogrammas patērē ievērojamu procesora jaudu, noņemiet tās no datubāzes servera. Ja sqlservr.exe izmanto lielu procesora jaudu, veiciet izpēti, izmantojot šīs metodes:

  • Pārbaudiet SQL kompilāciju skaitu sekundē un SQL atkārtotu kompilāciju skaitu sekundē. Vērtības, kas pārsniedz 10 % no partijas pieprasījumu skaita sekundē, norāda uz pārmērīgu kompilāciju.
  • Vaicājums sys.dm_exec_query_stats, lai identificētu CPU intensīvi patērējošos vaicājumus
  • Izpildes plānu pārskatīšana, lai noteiktu trūkstošos indeksus vai neefektīvas darbības
  • Apsveriet iespēju pievienot indeksus, lai samazinātu tabulu skenēšanu.

10.2 Atmiņas problēmu diagnosticēšana

Atmiņas problēmas būtiski ietekmē SQL Server veiktspēja. Diagnosticiet atmiņas problēmas, izmantojot šos indikatorus:

Pieejamie atmiņas pilieni

Ja pieejamo megabaitu skaits pastāvīgi samazinās zem 100 MB, operētājsistēmai ir atmiņas trūkums. Windows var palaist lapu beigšanu. SQL Server atmiņas pārsūtīšana uz disku, izraisot veiktspējas pasliktināšanos.

Zems lapas dzīves ilgums

Lapas paredzamais dzīves ilgums, kas ir mazāks par 300 sekundēm, norāda uz lielu bufera kešatmiņas apgrozījumu. Tas liecina vai nu par nepietiekamu atmiņas piešķiršanu, vai par pārmērīgu atmiņas slodzi no vaicājumiem.

Zems bufera kešatmiņas trāpījumu koeficients

Bufera kešatmiņas trāpījumu attiecība zem 99% nozīmē SQL Server bieži nolasa datus no diska, nevis atmiņas. Tas notiek, ja bufera rezerve ir pārāk maza vai SQL Server pēc pārstartēšanas joprojām iesilst.

Atmiņas dotācijas gaida

Jebkura vērtība, kas lielāka par 0, sadaļā “Atmiņas piešķiršanas gaida”, norāda, ka vaicājumi gaida atmiņas piešķiršanu. Tas norāda uz kritisku atmiņas trūkumu, kam nepieciešama tūlītēja uzmanība.

Lai novērstu atmiņas problēmas:

  1. Konfigurēt SQL Server maksimālās atmiņas iestatījums, lai operētājsistēmai būtu pietiekami daudz RAM (parasti 4–8 GB atkarībā no servera lieluma)
  2. Iespējojiet atļauju “Bloķēt lapas atmiņā” SQL Server pakalpojuma konts
  3. Pievienojiet serverim vairāk fiziskās RAM, ja atmiņas spiediens joprojām pastāv.
  4. Identificējiet un optimizējiet atmiņas ietilpīgus vaicājumus

10.3 Diska I/O problēmu risināšana

Diska I/O bieži kļūst par galveno veiktspējas vājo vietu datubāzu sistēmās. Diagnosticiet disku problēmas, izmantojot šīs metodes:

Augsts diska rindas garums

Diska rindas garums pastāvīgi pārsniedz 2 (vai 2 uz vienu disku RAID gadījumā) norāda, ka diska apakšsistēma nespēj tikt galā ar I/O pieprasījumiem. Tas rada gaidošo darbību uzkrāšanos.

Pārmērīga diska latentuma

Vid. diska sekundes/lasīšanas un vid. diska sekundes/rakstīšanas vērtības virs 10–20 ms norāda uz lēnu diska reakciju. Transakciju žurnāla diskdziņiem ir nepieciešama īpaši ātra veiktspēja, ideālā gadījumā rakstīšanai zem 5 ms.

Augsts diska laika procents

Ilgstošs % diska laika rādītājs virs 85% norāda uz diska piesātinājumu. Disks lielāko daļu laika apstrādā I/O pieprasījumus, un tam ir palikusi neliela brīva vieta.

Pirms disku problēmu risināšanas pārliecinieties, vai tās nav atmiņas problēmu simptomi. Nepietiekama atmiņa piespiež SQL Server lai nolasītu vairāk datu no diska, mākslīgi palielinot diska metriku.

Lai novērstu īsta diska I/O problēmas:

  • Jauniniet uz ātrākiem diskiem (SSD, nevis HDD)
  • Ieviesiet RAID konfigurācijas, lai uzlabotu veiktspēju
  • Atdaliet datubāzes failus, darījumu žurnālus un pagaidu datubāzi dažādos fiziskajos diskos
  • Pievienojiet vairāk atmiņas, lai samazinātu diska lasīšanas ātrumu
  • Optimizējiet indeksus, lai samazinātu nevajadzīgo ievadi/izvadi
  • Pārskatiet un optimizējiet slikti funkcionējošus vaicājumus

10.4 Bloķēšanas un strupceļu novēršana

Bloķēšana notiek, ja vienā sesijā ir bloķējumi, kas neļauj turpināt citas sesijas. Uzraugiet šos skaitītājus, lai identificētu bloķēšanas problēmas:

  • Bloķētie procesi: Ideālā gadījumā vajadzētu būt 0
  • Bloķēt gaidīšanas laiku/sekundē: Bloķēšanas pieprasījumu skaits, kuriem nepieciešama gaidīšana
  • Vidējais gaidīšanas laiks: Vidējais bloķēšanas gaidīšanas ilgums

Lai izpētītu bloķēšanu:

  1. Atveriet aktivitāšu monitoru pakalpojumā SSMS
  2. Paplašināt Procesi daļa
  3. Meklējiet procesus ar vērtību, kas nav nulle Bloķēja vērtības
  4. Nosakiet bloķēšanas sesijas ID
  5. Pārskatiet vaicājumus, kas izraisa bloķēšanu

Detalizētākai bloķēšanas analīzei izmantojiet sp_WhoIsActive. Pārāk daudz wait_info ierakstu bieži norāda uz tempdb konkurences vai bloķēšanas problēmām.

Lai samazinātu bloķēšanu:

  • Samazināt darījuma ilgumu
  • Izmantojiet atbilstošus izolācijas līmeņus
  • Pievienojiet indeksus, lai samazinātu bloķēšanas ilgumu
  • Apsveriet READ_COMMITTED_SNAPSHOT izolāciju
  • Ilgstošu vaicājumu pārskatīšana un optimizēšana

10.5 Vaicājumu veiktspējas problēmas

Dārgu vaicājumu identificēšana ir būtiska SQL veiktspējas uzraudzībai. Izmantojiet šīs metodes, lai atrastu problemātiskus vaicājumus:

Aktivitāšu monitora izmantošana

  1. SSMS ar peles labo pogu noklikšķiniet uz servera nosaukuma.
  2. Izvēlēties Activity Monitor
  3. paplašināt Nesenie dārgie vaicājumi
  4. Pārskatīt vaicājumus ar augstu CPU jaudu, ilgumu vai loģiskajām lasīšanas reizēm

Izmantojot DMV

Veiciet vaicājumu sys.dm_exec_query_stats, lai identificētu resursu ietilpīgus vaicājumus:

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

Izpildes plānu analīze

  1. SSMS atveriet jaunu vaicājuma logu.
  2. Noklikšķiniet Parādīt paredzamo izpildes plānu (Ctrl+L) vai Iekļaut faktisko izpildes plānu (Ctrl+M)
  3. Izpildiet savu vaicājumu
  4. Pārskatiet dārgu operāciju izpildes plānu
  5. Meklējiet tabulu skenēšanu, indeksu skenēšanu vai augstas izmaksas operācijas

Optimizējiet vaicājumus pēc:

  • Atbilstošu indeksu pievienošana
  • Vaicājumu pārrakstīšana, lai izvairītos no dārgām darbībām
  • Statistikas atjaunināšana
  • Izmantojot konkrētus kolonnu nosaukumus SELECT vietā *
  • Izvairīšanās no nevajadzīgām DISTINCT vai ORDER BY klauzulām

10.6 Bojātas datubāzes noteikšana un labošana

Datu bāzes bojājumi var izraisīt veiktspējas pasliktināšanos, datu zudumu un sistēmas kļūmes. Bojājumu ātra atklāšana un novēršana ir ļoti svarīga, lai uzturētu datu bāzes veselību.

Datubāzes bojājumu indikatori

Pievērsiet uzmanību šīm iespējamās korupcijas pazīmēm:

  • Kļūdu ziņojumi sadaļā SQL Server kļūdu žurnāls (kļūda 823, 824 vai 825)
  • Neparedzētas lietojumprogrammu kļūdas, piekļūstot noteiktām tabulām
  • Lēna vaicājumu veiktspēja iepriekš ātros vaicājumos
  • SQL Server avārijas vai negaidītas restartēšanas
  • Aizdomīgas lapas, kas parādās tabulā msdb.dbo.suspect_pages

DBCC CHECKDB izmantošana noteikšanai

DBCC PĀRBAUDE ir galvenais rīks datubāzes bojājumu noteikšanai. Regulāri palaidiet to, lai problēmas pamanītu jau agrīnā stadijā.

Aizdomīgu lapu uzraudzība

SQL Server automātiski ieraksta aizdomīgās lapas msdb datubāzē:

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)

Visas atgrieztās rindas norāda uz korupcijas problēmām, kurām nepieciešama tūlītēja uzmanība.

Korupcijas novēršanas stratēģijas

  • Iespējot lapas verifikāciju ar opciju CHECKSUM
  • Regulāri uztur datubāzes dublējumkopijas
  • Izmantojiet uzticamu aparatūru ar kļūdu labošanas funkciju
  • Diska stāvokļa uzraudzība, izmantojot ražotāja rīkus
  • Regulāru DBCC CHECKDB palaišanas ieplānošana
  • glabāt SQL Server atjaunināts ar jaunākajiem ielāpiem

Atkopšanas un labošanas iespējas

Ja tiek konstatēti bojājumi, varat izmēģināt iebūvēto rīku DBCC PĀRBAUDE lai tos labotu. Ja neizdodas, izmantojiet trešo pušu rīkus, piemēram, DataNumen SQL Recovery kas spēj tikt galā ar nopietniem korupcijas gadījumiem.

11. Uzlabotas uzraudzības metodes

11.1 Vaicājumu krātuves uzraudzība

Vaicājumu krātuve, ieviesta 2016. gadā SQL Server 2016. gadā automātiski tver vaicājumu veiktspējas datus. Tas sniedz vērtīgu ieskatu vaicājumu uzvedībā, izpildes plānos un veiktspējas tendencēs.

Vaicājumu krātuves iespējošana

  1. SSMS objektu pārlūkā ar peles labo pogu noklikšķiniet uz datu bāzes.
  2. Izvēlēties īpašības
  3. Noklikšķiniet Vaicājumu veikals lappuse
  4. In Darbības režīms (pieprasīts)izvēlieties Lasīt rakstīt
  5. Konfigurējiet papildu iestatījumus pēc nepieciešamības
  6. Noklikšķiniet OK

Vaicājumu veiktspējas uzraudzība

Piekļuves vaicājumu krātuves atskaites, izmantojot objektu pārlūku:

  1. Izvērst datubāzi objektu pārlūkā
  2. paplašināt Vaicājumu veikals
  3. Izvēlieties no pieejamajām atskaitēm:
    • Regresēti vaicājumi
    • Kopējais resursu patēriņš
    • Visvairāk resursus patērējošie vaicājumi
    • Vaicājumi ar piespiedu plāniem
    • Izsekotie vaicājumi

Plāna regresijas noteikšana

Vaicājumu krātuve automātiski nosaka, kad mainās vaicājumu izpildes plāni un pasliktinās veiktspēja. Pārskatiet regresēto vaicājumu pārskatu, lai identificētu vaicājumus, kurus ietekmē plāna izmaiņas.

Piespiedu plāna pārvaldība

Kad vaicājumu krātuve nosaka labāku izpildes plānu, piespiedu kārtā SQL Server lai to izmantotu:

  1. Atveriet vaicājumu vaicājumu krātuvē
  2. Ar peles labo pogu noklikšķiniet uz vēlamā plāna
  3. Izvēlēties Spēku plāns

Tas nekavējoties uzlabo veiktspēju, neprasot koda izmaiņas.

11.2 Indeksa uzturēšanas uzraudzība

Indeksu fragmentācija laika gaitā pasliktina vaicājumu veiktspēju. Regulāri uzraugiet un uzturiet indeksus, lai nodrošinātu optimālu veiktspēju.

Fragmentācijas pārbaude

Izmantojiet šo vaicājumu, lai pārbaudītu indeksa fragmentāciju:

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

Palaidiet šo vaicājumu ārpus pīķa stundām, jo ​​tas var būt resursu ietilpīgs.

Lapas blīvuma analīze

Lapas blīvums norāda, cik pilnas ir indeksa lapas. Zems blīvums patērē vietu un samazina veiktspēju:

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

Reorganizācijas un pārbūves lēmumi

Izvēlieties indeksa uzturēšanas darbības, pamatojoties uz fragmentācijas līmeņiem:

  • Fragmentācija 10–30 %: Izmantojiet funkciju ALTER INDEX REORGANIZE
  • Fragmentācija > 30%: Izmantojiet ALTER INDEX REBUILD
  • Fragmentācija < 10%: Nav nepieciešama rīcība

Reorganizācijas operācijas prasa mazāk resursu un var tikt veiktas tiešsaistē. Atjaunošanas operācijas ir rūpīgākas, taču patērē ievērojamus resursus.

11.3 Datu bāzes statistikas atjauninājumi

Datu bāzes statistikas palīdzība SQL Servervaicājumu optimizētājs izveido efektīvus izpildes plānus. Novecojusi statistika noved pie sliktas vaicājumu veiktspējas.

Automātiska statistikas atjaunošana

Iespējot automātiskos statistikas atjauninājumus:

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

Statistikas veselības monitorings

Pārbaudiet, kad pēdējo reizi tika atjaunināta 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

Atjauniniet statistiku manuāli, kad nepieciešams:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Pielāgotu veiktspējas datu vākšana

Izveidojiet pielāgotus veiktspējas uzraudzības risinājumus, tieši vaicājot sys.dm_os_performance_counters un saglabājot rezultātus tabulās.

Pielāgotu kolekciju skriptu izveide

Izveidojiet saglabātu procedūru veiktspējas skaitītāja datu apkopošanai:

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

Izmantojot sys.dm_os_performance_counters

Vaicājumu veiktspējas skaitītāji tieši:

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

Vēsturisko datu glabāšana

Izveidojiet tabulu, lai laika gaitā saglabātu veiktspējas rādītājus:

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

Pivotētas datu glabāšanas metodes

Saglabājiet datus pivot formātā ar vienu rindu katram parauga laikam un vienu kolonnu katram skaitītājam. Tas samazina krātuves vietu un uzlabo vaicājumu veiktspēju, salīdzinot ar vienas rindas saglabāšanu katram skaitītājam katram paraugam.

11.5 Vairāku serveru uzraudzība

Vidēm ar vairākiem SQL Server gadījumos ieviesiet centralizētu uzraudzību.

Centralizēta uzraudzības pieeja

  • Izveidojiet atsevišķu uzraudzības datubāzi atsevišķā serverī
  • Apkopojiet datus no visiem serveriem centrālajā repozitorijā
  • lietošana SQL Server Aģenta darbi, lai palaistu kolekcijas skriptus
  • Ieviest tīklā pieejamu veiktspējas skaitītāju kolekciju

Attālā servera uzraudzība

Konfigurējiet veiktspējas monitoru datu apkopošanai no attāliem serveriem, norādot serveru nosaukumus, pievienojot skaitītājus. Pārliecinieties, vai ugunsmūra noteikumi atļauj veiktspējas monitora trafiku.

Starpserveru pārskatu veidošana

Veidojiet atskaites, kas salīdzina veiktspēju vairākos serveros, lai identificētu novirzes un jaudas nelīdzsvarotību.

12. Uzraudzība SQL Server mākoņvidēs

12.1 Azure SQL datubāzes uzraudzība

Azure SQL datubāze nodrošina iebūvētas uzraudzības iespējas, kas atšķiras no lokālajām sistēmām. SQL Server.

Azure Monitor integrācija

Azure Monitor automātiski apkopo rādītājus no Azure SQL datubāzes, tostarp:

  • DTU vai vCore izmantošana
  • Uzglabāšana izmantošana
  • Savienojuma statistika
  • Strupceļi un taimauti

Piekļūstiet šiem rādītājiem, izmantojot Azure portālu vai Azure Monitor API.

Iebūvētas uzraudzības funkcijas

Azure SQL datubāze ietver:

  • Automātiskās regulēšanas ieteikumi
  • Vaicājumu veiktspējas ieskats
  • Inteliģentas ieskatas anomāliju noteikšanai
  • Iebūvēta brīdināšana un diagnostika

Vaicājumu veiktspējas ieskats

Šī funkcija nodrošina visvairāk resursus patērējošo vaicājumu vizualizāciju, vaicājumu ilguma analīzi un vēsturiskās veiktspējas tendences. Piekļūstiet tai, izmantojot Azure portālu, sadaļā SQL datubāzes resurss.

12.2 Mākonī bāzēti uzraudzības rīki

Mākoņplatformas piedāvā vietējos uzraudzības risinājumus, kas ir optimizēti to vidēm:

  • Azure Monitor un Application Insights Azure SQL datubāzei
  • AWS CloudWatch RDS SQL Server
  • Google mākoņa uzraudzība mākonim SQL Server

Šie rīki nemanāmi integrējas ar mākoņa infrastruktūru un nodrošina vienotu uzraudzību visos mākoņa resursos.

Hibrīda vides monitorings

Hibrīda izvietojumiem, kas aptver gan lokālo, gan mākoņa vidi, izmantojiet rīkus, kas atbalsta abas vides, piemēram, Redgate SQL Monitor, SolarWinds DPA vai pielāgotus risinājumus, izmantojot centralizētu datu vākšanu.

12.3 Veiktspējas atšķirības mākonī

mākonis SQL Server videi ir raksturīgas unikālas iezīmes:

Resursu sadales modeļi

Mākoņpakalpojumu sniedzēji izmanto dažādas resursu piešķiršanas metodes (DTU, vCore, bezserveru risinājumus), kas ietekmē to, kā jūs interpretējat veiktspējas rādītājus. Izprotiet sava pakalpojumu līmeņa ierobežojumus un raksturlielumus.

Mērogošanas apsvērumi

Mākoņvides piedāvā dinamiskas mērogošanas iespējas. Uzraugiet resursu izmantošanu, lai noteiktu, kad palielināt vai samazināt mērogošanu. Daudzas mākoņplatformas nodrošina automātisku mērogošanu, pamatojoties uz veiktspējas sliekšņiem.

13. Veiktspējas uzraudzības automatizācija

13.1 SQL Server Aģenta darbs

Automatizējiet datu vākšanu, izmantojot SQL Server Aģenta darbi pastāvīgai uzraudzībai bez manuālas iejaukšanās.

Plānota datu vākšana

  1. SSMS izvērsiet SQL Server Aģents
  2. Right-click Darbs un izvēlieties Jauns darbs
  3. Nosauciet darbu (piemēram, “Apkopot veiktspējas rādītājus”).
  4. Noklikšķiniet Soļi un pievienot jaunu soli
  5. Iestatiet tipu uz Transact-SQL skripts
  6. Ievadiet savu datu vākšanas skriptu
  7. Noklikšķiniet Grafiki un pievienot grafiku
  8. Konfigurēt biežumu (piemēram, ik pēc 5 minūtēm)
  9. Noklikšķiniet OK lai izveidotu darbu

Automatizētie pārskati

Izveidojiet darbus, kas ģenerē un nosūta pa e-pastu veiktspējas pārskatus:

  1. Izveidojiet saglabātu procedūru, kas ģenerē atskaites
  2. Izmantojiet Database Mail, lai nosūtītu atskaites pa e-pastu
  3. Plānojiet uzdevumu izpildi katru dienu vai katru nedēļu

13.2 PowerShell automatizācija

PowerShell nodrošina jaudīgas automatizācijas iespējas SQL Server veiktspējas monitors.

Veiktspējas skaitītāja kolekcijas skripti

$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 vaicājumi

Izmantojiet WMI, lai apkopotu veiktspējas datus no attāliem serveriem:

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

Automatizēta brīdināšana

Izveidojiet PowerShell skriptus, kas pārbauda metrikas un nosūta brīdinājumus, kad tiek pārkāpti sliekšņi:

$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 Uzraudzības informācijas paneļu izveide

Vizualizējiet veiktspējas datus ar interaktīviem informācijas paneļiem, lai iegūtu labāku ieskatu.

Power BI integrācija

  1. Savienojiet Power BI ar savām veiktspējas datu tabulām
  2. Izveidojiet galveno rādītāju vizualizācijas
  3. Pievienot griezumus laika diapazonam un servera izvēlei
  4. Publicēt informācijas paneļus pakalpojumā Power BI
  5. Automātiskās atsvaidzināšanas grafiku konfigurēšana

Informācijas paneļa izveide reāllaikā

Izmantojiet tādus rīkus kā Grafana vai pielāgotas tīmekļa lietojumprogrammas, lai izveidotu reāllaika informācijas paneļus, kas tieši vaicā DMV un veiktspējas skaitītājus.

Vēsturisko tendenču vizualizācija

Veidojiet līniju diagrammas, kas parāda tendences laika gaitā:

  • CPU izmantošana
  • Atmiņas izmantošana
  • Diska I/O
  • Vaicājuma veiktspēja
  • Savienojumu skaits

14. Gadījumu izpēte un praktiskie piemēri

14.1 Gadījuma izpēte: atmiņas spiediena risināšana

Simptomu identifikācija

Iestudējums SQL Server saslimstundās tika novērots lēns vaicājumu atbildes laiks. Lietotāji sūdzējās par lietojumprogrammu taimautiem un pasliktinātu veiktspēju.

Pretanalīze

Atklāti veiktspējas monitora dati:

  • Lapas dzīves ilgums samazinājās līdz 50 sekundēm (normāli: >300)
  • Bufera kešatmiņas trāpījumu attiecība samazinājās līdz 85% (normāli: >99%)
  • Gaidošās atmiņas piešķiršanas bieži vien uzrādīja vērtības 5–10
  • Fiziskā diska nolasījumu skaits sekundē ievērojami palielinājās

Risināšanas soļi

  1. Pārbaudīts SQL Server maksimālās atmiņas iestatījums — atklāju, ka tas ir iestatīts uz noklusējuma vērtību (neierobežots)
  2. Pārskatītā kopējā servera atmiņa salīdzinājumā ar mērķa servera atmiņu — tika konstatēta ievērojama atšķirība
  3. Konfigurēta maksimālā servera atmiņa, lai operētājsistēmai atstātu 8 GB
  4. Iespējota atļauja “Bloķēt lapas atmiņā” lietotājam SQL Server pakalpojuma konts
  5. Serverim pievienoti 32 GB papildu RAM
  6. Veiktspējas uzraudzība vienas nedēļas garumā — lapas paredzamais dzīves ilgums stabilizējās virs 500 sekundēm

Rezultāts: Vaicājumu atbildes laiks uzlabojās par 60 %, lietotāju sūdzības tika pārtrauktas, un lietojumprogrammu veiktspēja atgriezās normālā stāvoklī.

14.2 Gadījuma izpēte: CPU veiktspējas optimizācija

Simptomu identifikācija

A SQL Server darba laikā pastāvīgi tika rādīta centrālā procesora noslodze virs 90%, izraisot lēnu lietojumprogrammu veiktspēju un lietotāju neapmierinātību.

Pretanalīze

Veiktspējas uzraudzība atklāja:

  • Procesora laika procents vidēji bija 92% ar biežiem pieaugumiem līdz 100%
  • Procesora rindas garums pastāvīgi pārsniedz 4 (serverī bija 8 kodoli)
  • SQL kompilāciju skaits sekundē bija 25 % no partijas pieprasījumu skaita sekundē (vajadzētu būt < 10 %)
  • SQL atkārtotu kompilāciju skaits sekundē bija 15 % no partijas pieprasījumu skaita sekundē.

Risināšanas soļi

  1. Izmantoja DMV, lai identificētu visvairāk procesora slodzi patērējošos vaicājumus
  2. Analizēti izpildes plāni identificētajiem vaicājumiem
  3. Atklātas vairākas tabulu skenēšanas lielās tabulās trūkstošu indeksu dēļ
  4. Izveidoti atbilstoši indeksi, pamatojoties uz izpildes plāna ieteikumiem
  5. Identificēts dinamisks SQL, kas izraisa pārmērīgu kompilāciju
  6. Modificēts lietojumprogrammas kods, lai izmantotu parametrizētus vaicājumus
  7. Ieviests plāna ceļvedis problemātiskām saglabātajām procedūrām
  8. Atjaunināta statistika par bieži izmantotām tabulām

Rezultāts: Darba laikā centrālā procesora noslodze samazinājās līdz vidēji 45 %. Vaicājumu izpildes laiks uzlabojās par 70 %. Lietojumprogrammu reaģētspēja ievērojami uzlabojās.

14.3 Gadījuma izpēte: diska I/O sastrēgumu novēršana

Simptomu identifikācija

Lietotāji ziņoja par ārkārtīgi lēnu lietojumprogrammu reakciju datu ielādes darbību un vakara partiju apstrādes laikā.

Pretanalīze

Veiktspējas dati parādīja:

  • Vidējais diska sekunžu/rakstīšanas laiks transakciju žurnāla diskā pārsniedza 45 ms
  • Diska rindas garums datu failu diskdzinī vidēji bija 12
  • Diska laika procentuālā daļa partiju darbu laikā vairākas stundas saglabājās virs 95 %.
  • Lapas rakstīšanas ātrums sekundē bija ārkārtīgi augsts

Risināšanas soļi

  1. Pārbaudītie atmiņas iestatījumi bija atbilstoši — atmiņas problēmas netika atrastas.
  2. Analizēta diska konfigurācija — atrasti visi faili vienā un tajā pašā vārpstas komplektā
  3. Atsevišķi darījumu žurnāli uz īpašiem ātrajiem SSD diskdziņiem
  4. Pārvietots tempdb uz atsevišķiem SSD diskdziņiem
  5. Ieviesti vairāki tempdb datu faili (pa vienam katram kodolam)
  6. Jaunināti datu failu diski uz RAID 10 SSD konfigurāciju
  7. Optimizēti pakešuzdevumi, lai izmantotu mazākas darījumu partijas
  8. Pievienoti indeksi, lai samazinātu nevajadzīgu tabulu skenēšanu partiju darbību laikā

Rezultāts: Vidējais diska sekunžu skaits/rakstīšanas laiks samazinājās līdz 3 ms. Diska rindas vidējais garums bija mazāks par 1. Pakešuzdevuma pabeigšanas laiks samazinājās par 75 %.

15. Nākotnes tendences SQL Server Uzraudzība

15.1 Mākslīgā intelekta un mašīnmācīšanās integrācija

Mākslīgais intelekts un mašīnmācīšanās piedzīvo pārmaiņas SQL Server veiktspējas monitors.

Paredzamā analīze

Mašīnmācīšanās modeļi prognozē nākotnes resursu vajadzības, pamatojoties uz vēsturiskiem datiem. Šīs sistēmas var prognozēt:

  • Kad uzglabāšanas jauda būs izsmelta
  • Paredzamās centrālā procesora un atmiņas prasības maksimālās slodzes periodos
  • Vaicājumu veiktspējas pasliktināšanās, pirms tā ietekmē lietotājus
  • Optimālais laiks apkopes darbībām

Anomāliju noteikšana

Mākslīgā intelekta vadīti rīki automātiski nosaka neparastas modeļus veiktspējas rādītājos. Tie identificē anomālijas, kuras cilvēku administratori varētu nepamanīt, un atšķir normālas variācijas no patiesām problēmām.

Automatizēta sanācija

Pašdziedinošās sistēmas automātiski novērš bieži sastopamas problēmas, kad tās tiek atklātas:

  • Restartējiet pakalpojumus, kas ir apturēti
  • Resursu pārdalīšana maksimālās slodzes laikā
  • Lietojiet labojumfailus zināmām problēmām
  • Automātiski atjaunot fragmentētus indeksus

15.2 Mākonī balstītas uzraudzības evolūcija

Mākoņpakalpojumu uzraudzība turpina attīstīties, radot jaunas iespējas.

Vienotas uzraudzības platformas

Modernās platformas nodrošina redzamību no viena stikla paneļa visā:

  • Uz vietas SQL Server gadījumi
  • Mākonī mitinātas datubāzes
  • Hibrīda vide
  • Lietojumprogrammas veiktspēja
  • Infrastruktūras metrika

Novērojamības tendences

Pāreja no uzraudzības uz novērojamību uzsver:

  • Sistēmas uzvedības izpratne no izejas datiem
  • Korelācijas rādītāji, žurnāli un izsekošanas dati
  • Padziļināta izpratne par izkliedētajām sistēmām
  • Problēmu diagnostika reāllaikā

15.3 Pašatjaunojošās datubāzu sistēmas

Nākotne SQL Server versijās būs iekļautas vairāk autonomu iespēju.

Automātiskā optimizācija

Datu bāzes nepārtraukti optimizēsies, veicot šādas darbības:

  • Automātiska indeksu izveide un dzēšana, pamatojoties uz darba slodzi
  • Konfigurācijas iestatījumu pielāgošana optimālai veiktspējai
  • Neefektīvu vaicājumu pārrakstīšana caurspīdīgi
  • Resursu sadales dinamiska pārvaldība

Inteliģentā regulēšana

Uzlabotas sistēmas mācīsies no veiktspējas modeļiem un automātiski piemēros regulēšanas ieteikumus, samazinot nepieciešamību pēc manuālas DBA iejaukšanās.

16. Secinājums un galvenās atziņas

16.1 Būtiskāko uzraudzības prakšu kopsavilkums

Efektīvs SQL Server Veiktspējas monitoram ir nepieciešama visaptveroša pieeja, apvienojot rīkus, metodes un labāko praksi.

Kritisko skaitītāju kopsavilkums

Koncentrējiet uzraudzības centienus uz šiem svarīgākajiem skaitītājiem:

  • Atmiņa: lapas paredzamais dzīves ilgums, bufera kešatmiņas trāpījumu koeficients, gaidošās atmiņas piešķiršanas
  • CPU: procesora laiks (%), procesora rindas garums
  • Disks: vid. diska sekundes/lasīšana un rakstīšana, diska rindas garums
  • SQL ServerPakešu pieprasījumi/sekundē, kompilācijas/sekundē, lietotāju savienojumi

Labākās prakses kopsavilkums

  • Noteikt bāzes līnijas normālas darbības laikā
  • Iestatiet viedus brīdinājuma sliekšņus, pamatojoties uz bāzes līnijām
  • Regulāri pārskatiet veiktspējas datus
  • Bilances uzraudzības pieskaitāmās izmaksas ar datu granularitāti
  • Saglabājiet ilgtermiņa datus tendenču analīzei
  • Izmantojiet katram uzraudzības scenārijam atbilstošus rīkus

16.2 Nepārtrauktas uzlabošanas pieeja

SQL Server Veiktspējas monitorings nav vienreizēja darbība, bet gan nepārtraukts process, kam nepieciešama nepārtraukta pilnveidošana.

Regulāri pārskatīšanas cikli

  • Katru dienu: pārbaudiet brīdinājumus un pašreizējo veiktspēju
  • Katru nedēļu: Pārskatiet tendences un identificējiet jaunās problēmas
  • Katru mēnesi: analizējiet ilgtermiņa modeļus un jaudas vajadzības
  • Reizi ceturksnī: atjaunināt bāzes līnijas un pārskatīt uzraudzības efektivitāti

Atjaunināta informācija par rīkiem

Atjauniniet uzraudzības rīkus un metodes:

  • Novērtējiet jaunās uzraudzības funkcijas SQL Server Atjauninājumi
  • Testējiet jaunus trešo pušu rīkus
  • Apmeklējiet apmācības un konferences
  • Piedalīties SQL Server kopienas forumi
  • Dalieties zināšanās ar komandas biedriem

16.3 Nākamie soļi

Izpildīt SQL Server sistemātiski uzraudzīt sniegumu:

Īstenošanas ceļvedis

  1. Nedēļa 1: Iestatiet veiktspējas monitoru ar svarīgiem skaitītājiem
  2. Nedēļa 2: Izveidojiet datu kolektoru kopas automatizētai apkopošanai
  3. Nedēļa 3: Noteikt bāzes līnijas normālas darbības laikā
  4. Nedēļa 4: Konfigurējiet brīdinājumus kritiskiem sliekšņiem
  5. 2 mēnesis: Ieviest papildu uzraudzības rīkus (DMV, paplašinātus notikumus)
  6. 3 mēnesis: Izstrādājiet pielāgotus informācijas paneļus un pārskatus
  7. Notiek: Uzlabojiet uzraudzību, pamatojoties uz pieredzi un mainīgajām prasībām

Papildu resursi

Turpiniet mācīties par SQL Server veiktspējas monitoru, izmantojot Microsoft dokumentāciju, kopienas emuārus un praktiskus vingrinājumus. Eksperimentējiet ar dažādiem rīkiem un metodēm, lai atrastu to, kas vislabāk atbilst jūsu videi.

17. Bieži uzdotie jautājumi (BUJ)

17.1 Kādi ir vissvarīgākie? SQL Server Kādi veiktspējas skaitītāji jāuzrauga?

Viskritiskākais SQL Server Veiktspējas skaitītāji ietver:

  • Atmiņa: lapas paredzamais dzīves ilgums (jābūt > 300 sekundēm) un bufera kešatmiņas trāpījumu attiecība (jābūt > 99%)
  • CPU: procesora laika % (pastāvīgas vērtības <75%) un procesora rindas garumam (jābūt <2 uz kodolu)
  • Disks: vidējais diska lasīšanas un rakstīšanas laiks sekundēs (jābūt <10–20 ms) un diska rindas garums (jābūt <2 uz disku)
  • SQL Server: Pakešu pieprasījumi/sekundē, SQL kompilācijas/sekundē un atmiņas piešķiršanas gaidīšanas režīmā (jābūt 0)

Šie skaitītāji sniedz visaptverošu ieskatu sistēmas stāvoklī un palīdz ātri identificēt sastrēgumus.

17.2 Cik bieži man vajadzētu apkopot veiktspējas datus?

Apkopošanas biežums ir atkarīgs no jūsu uzraudzības mērķiem:

  • Sākotnējā stāvokļa uzraudzība: ik pēc 1 minūtes (60 sekundēm)
  • Aktīva problēmu novēršana: Īslaicīgi ik pēc 15–30 sekundēm
  • Ilgtermiņa tendences: ik pēc 5 minūtēm

Izvairieties no nepārtrauktas augstas frekvences datu vākšanas, jo tā var ietekmēt veiktspēju un ģenerēt pārmērīgu datu daudzumu. Izmantojiet ilgākus intervālus regulārai uzraudzībai un īsākus intervālus tikai konkrētu problēmu izpētei.

17.3 Kāda ir atšķirība starp veiktspējas monitoru un SQL Server Profilētājs?

Veiktspējas monitors un SQL Server Profileriem ir dažādi mērķi:

Performance Monitor:

  • Uzrauga sistēmu un SQL Server veiktspējas skaitītāji
  • Izseko resursu izmantošanu (procesors, atmiņa, disks)
  • Zemas pieskaitāmās izmaksas, piemērots nepārtrauktai uzraudzībai
  • Nodrošina apkopotus rādītājus laika gaitā

SQL Server Profilētājs:

  • Individuālās pēdas SQL Server notikumi un vaicājumi
  • Ietver detalizētu vaicājuma izpildes informāciju
  • Augstākas virsgaitas, nav ieteicams nepārtrauktai lietošanai
  • Vislabāk piemērots konkrētu vaicājumu problēmu novēršanai
  • Novecojis par labu paplašinātiem notikumiem

Izmantojiet veiktspējas monitoru vispārējai sistēmas uzraudzībai un paplašinātos notikumus (nevis Profiler) detalizētai vaicājuma līmeņa analīzei.

17.4 Vai veiktspējas monitora ietekme var būt iespējama? SQL Server sniegums?

Pareizi konfigurēts, veiktspējas monitoram ir minimāla ietekme uz SQL Server veiktspējas izmaksas, parasti mazāk nekā 2 %. Tomēr pārmērīga uzraudzība var radīt problēmas:

  • Pārāk daudz skaitītāju palielina izmaksas
  • Ļoti īsi paraugu ņemšanas intervāli (mazāk nekā 15 sekundes) noslogo resursus
  • Nepārtraukta augstfrekvences datu vākšana ģenerē lielus žurnālfailus

Lai mazinātu ietekmi:

  • Uzraugiet tikai nepieciešamos skaitītājus
  • Izmantojiet atbilstošus paraugu ņemšanas intervālus (60 sekundes rutīnas uzraudzībai)
  • Saglabājiet žurnālus diskos atsevišķi no datubāzes failiem
  • Ieplānojiet resursu ziņā ietilpīgu uzraudzību ārpus sastrēgumstundām

17.5 Cik ilgi man jāglabā veiktspējas uzraudzības dati?

Saglabāšanas ilgums ir atkarīgs no jūsu analīzes vajadzībām un krātuves ietilpības:

  • minimālā: 3 mēneši nesen radušos problēmu novēršanai
  • Ieteicams: 1–2 gadi kapacitātes plānošanai un tendenču analīzei
  • Optimāls: Nenoteiktu laiku, ja to atļauj uzglabāšanas iespējas, jo vēsturiskie dati laika gaitā kļūst vērtīgāki.

Veiktspējas skaitītāja dati labi saspiežas un aizņem salīdzinoši maz vietas. Apsveriet vecāku datu arhivēšanu atsevišķā krātuvē, nevis to dzēšanu. Daudzas organizācijas uzskata, ka gadiem ilgi uzkrāti vēsturiski dati ir nenovērtējami jaudas plānošanai un ilgtermiņa tendenču noteikšanai.

17.6 Kādas ir labas galveno veiktspējas skaitītāju robežvērtības?

Ieteicamās brīdināšanas robežvērtības:

  • Atmiņas piešķiršanas gaida apstiprinājumu: Brīdināt, ja > 0
  • Lapas dzīves ilgums: Brīdinājums, ja < 300 sekundes
  • Procesora laika %: Brīdinājums, ja > 80% 5 minūtes
  • Procesora rindas garums: Brīdinājums, ja > 2 uz kodolu
  • Vid. diska laiks sekundēs/lasīšanai vai rakstīšanai: brīdinājums, ja > 20 ms
  • Diska rindas garums: Brīdinājums, ja > 2 vienā diskā
  • Bloķētie procesi: Brīdināt, ja > 5

Pielāgojiet šos sliekšņus, pamatojoties uz jūsu bāzes datiem un specifiskajām darba slodzes īpašībām. Tas, kas ir normāli vienā vidē, var liecināt par problēmām citā.

17.7 Kā es varu uzraudzīt SQL Server sniegums attālināti?

Monitora tālvadības pults SQL Server gadījumos, kad tiek izmantotas šīs metodes:

  1. Performance Monitor: Pievienojot skaitītājus, norādiet attālā datora nosaukumu.
  2. PowerShell: Izmantojiet parametru -ComputerName ar Get-Counter
  3. DMV: Izveidojiet savienojumu ar attāliem serveriem, izmantojot SSMS, un vaicājiet DMV
  4. Trešās puses rīki: Lielākā daļa uzraudzības rīku atbalsta attālinātu serveru uzraudzību

Pārliecinieties, vai ugunsmūra noteikumi atļauj Performance Monitor datplūsmu un vai jums ir atbilstošas ​​atļaujas attālajā serverī. Ja ir vairāki serveri, apsveriet iespēju ieviest centralizētu uzraudzību ar īpašu uzraudzības serveri un datubāzi.

17.8 Kāds ir labākais bezmaksas rīks? SQL Server veiktspējas monitors?

Uzraudzībai ir pieejami vairāki lieliski bezmaksas rīki SQL Server izpildījums:

  • Windows veiktspējas monitors: Iebūvēts, visaptverošs un uzticams
  • SSMS aktivitāšu monitors: Reāllaika uzraudzība bez papildu instalēšanas
  • Paplašinātie notikumi: Iebūvēta viegla notikumu uzraudzība SQL Server
  • sp_WhoIsActive: Populāra bezmaksas saglabātā procedūra detalizētai aktivitāšu uzraudzībai
  • DBA domuzīme: Atvērtā koda uzraudzības rīks ar visaptverošām funkcijām
  • SQLWATCH: Atvērtā koda programmatūra ar gandrīz reāllaika uzraudzības iespējām

Lielākajai daļai organizāciju Performance Monitor apvienojumā ar SSMS rīkiem un sp_WhoIsActive nodrošina lieliskas uzraudzības iespējas bez papildu maksas.

17.9 Kā eksportēt PerfMon datus analīzei?

Eksportējiet veiktspējas monitora datus, izmantojot šīs metodes:

Eksportēt CSV formātā:

  1. Atveriet veiktspējas monitoru ar ielādētu žurnālfailu
  2. Ar peles labo pogu noklikšķiniet uz grafika un atlasiet Saglabāt datus kā
  3. izvēlēties Teksta fails (atdalīts ar komatiem) (.csv)
  4. Izvēlieties atrašanās vietu un saglabājiet
  5. Atvērt programmā Excel analīzei

Izmantojiet Relog komandu:

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

Šī komandrindas utilīta konvertē bināros žurnālfailus (.blg) CSV formātā, lai atvieglotu analīzi izklājlapu lietojumprogrammās.

17.10 Kad man vajadzētu izmantot trešo pušu uzraudzības rīkus iebūvēto opciju vietā?

Apsveriet trešo pušu rīkus, ja:

  • Liela skaita pārvaldīšana SQL Server gadījumi (10+)
  • Nepieciešama centralizēta uzraudzība vairākos datu centros
  • Nepieciešamas uzlabotas funkcijas, piemēram, paredzošā analītika vai anomāliju noteikšana
  • Vēlama integrēta brīdināšana ar incidentu pārvaldības sistēmām
  • Atbilstības pārskatu sniegšanas un vēsturiskās analīzes pieprasīšana
  • Trūkst DBA resursu pielāgotu risinājumu izveidei un uzturēšanai
  • Heterogēnu datubāzu vides uzraudzība (SQL Server, Oracle, MySQL utt.)

Iebūvētie rīki labi darbojas mazākās vidēs vai tad, ja jums ir prasmīgi datubāzes administratori, kas var izstrādāt pielāgotus uzraudzības risinājumus. Trešo pušu rīki nodrošina vērtību, ietaupot laiku, nodrošinot uzlabotas funkcijas un profesionālu atbalstu.

18. Papildu resursi

18.1 Oficiālā dokumentācija

Microsoft nodrošina plašu dokumentāciju par SQL Server veiktspējas monitors:

18.2 Ieteicamie rīki un lejupielādes

Būtiski instrumenti, lai SQL Server veiktspējas monitors:

  • PAL rīks: https://github.com/clinthuffman/PAL
  • sp_WhoIsActive: http://whoisactive.com/
  • DBA domuzīme: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Pirmās palīdzības komplekts (Brents Ozars): https://www.brentozar.com/first-aid/
  • SQL Server Vadības studija: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Kopienas resursi

Mācieties no SQL Server kopiena:

  • SQL Server Centrāle: https://www.sqlservercentral.com/
  • Brenta Ozara emuārs: https://www.brentozar.com/blog/
  • SQL būda: https://www.sqlshack.com/
  • MSSQL padomi: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Steka pārpilde SQL Server tags: https://stackoverflow.com/questions/tagged/sql-server

Šie resursi sniedz pamācības, problēmu novēršanas padomus un labāko praksi no pieredzējušiem lietotājiem. SQL Server profesionāļiem. Dalība kopienas forumos palīdz mācīties no citu pieredzes un dalīties savās zināšanās.


par autoru

Juaņs Šens ir vecākais datubāzes administrators (DBA) ar vairāk nekā 10 gadu pieredzi SQL Server vides un uzņēmumu datubāzu pārvaldību. Viņš ir veiksmīgi atrisinājis simtiem datubāzu atkopšanas scenāriju finanšu pakalpojumu, veselības aprūpes un ražošanas organizācijās.

Juaņa specializējas SQL Server datubāzes atgūšana, augstas pieejamības risinājumiun veiktspējas optimizāciju. Viņa plašā praktiskā pieredze ietver vairāku terabaitu datubāzu pārvaldību, ieviešanu Vienmēr pieejamības grupas, un izstrādājot automatizētas dublēšanas un atkopšanas stratēģijas misijai kritiski svarīgām biznesa sistēmām.

Izmantojot savu tehnisko pieredzi un praktisko pieeju, Juans koncentrējas uz visaptverošu rokasgrāmatu izveidi, kas palīdz datubāzu administratoriem un IT speciālistiem risināt sarežģītus jautājumus SQL Server efektīvi izaicina. Viņš seko līdzi jaunākajām tendencēm SQL Server laidieniem un Microsoft attīstītajām datubāzu tehnoloģijām, regulāri testējot atkopšanas scenārijus, lai nodrošinātu, ka viņa ieteikumi atspoguļo labāko praksi reālajā pasaulē.

Ir jautājumi par SQL Server atkopšanai vai nepieciešama papildu palīdzība datubāzes problēmu novēršanā? Juans laipni aicina atsauksmes un ieteikumi lai uzlabotu šos tehniskos resursus.

Kopīgot tūlīt: