1. Introducere în SQL Server Performance Monitor
1.1 Ce este SQL Server Monitor de performanță?
SQL Server Monitorizarea performanței este procesul de urmărire, analiză și gestionare a performanței și stării de sănătate a dispozitivului dumneavoastră. SQL Server baze de date. Aceasta implică colectarea și interpretarea datelor despre diverse aspecte ale sistemului de baze de date pentru a asigura performanțe optime, a preveni problemele și a menține starea de sănătate a bazei de date.
Monitorizarea performanței cuprinde urmărirea timpilor de execuție a interogărilor, a utilizării resurselor, a performanței indexului, a blocărilor și a blocajelor intermitente și a modelelor de creștere a bazei de date. Această supraveghere continuă îi ajută pe administratori să identifice potențialele probleme înainte ca acestea să afecteze utilizatorii sau operațiunile de afaceri.
1.2 Avantajele cheie ale monitorizării performanței
ultima modificare in SQL Server Monitorul de performanță oferă mai multe avantaje esențiale:
- Detectarea proactivă a problemelor: Identificați și abordați potențialele probleme înainte ca acestea să afecteze utilizatorii sau operațiunile afacerii
- Optimizarea performanței: Identificarea blocajelor și a ineficiențelor pentru a îmbunătăți performanța generală a bazei de date
- Planificarea capacitatii: Previziunea nevoilor de resurse și planificarea creșterii viitoare pe baza datelor istorice
- Conformitate și securitate: Asigurarea respectării cerințelor de reglementare și detectarea activităților suspecte
1.3 Provocări comune de performanță
Fără un monitor adecvat al performanței bazei de date SQL, organizațiile se confruntă cu mai multe riscuri:
- Timp de nefuncționare neprevăzut care perturbă operațiunile afacerii
- Performanța slabă a aplicației afectează experiența utilizatorului
- Pierderea sau coruperea datelor
- Utilizarea ineficientă a resurselor duce la costuri inutile
- Utilizatori frustrați și potențiale pierderi de venituri
Conform unui studiu IDC din 2023, 65% din problemele de performanță ale bazelor de date provin din practici de monitorizare sau optimizare deficitare.
2. Înțelegerea Monitorului de performanță Windows (PerfMon)
2.1 Ce este Monitorul de performanță Windows?
Monitorul de performanță Windows (PerfMon) este un instrument Windows încorporat care monitorizează resursele de sistem și performanța aplicațiilor. Pentru SQL Server administratori, PerfMon oferă informații neprețuite atât despre sistemul de operare, cât și despre SQL Server indicatori, ceea ce îi face esențiali pentru o analiză cuprinzătoare a performanței.
PerfMon măsoară statisticile de performanță la intervale regulate și salvează aceste statistici în fișiere pentru analize ulterioare. Administratorii bazelor de date pot selecta intervalul de timp, formatul fișierului și ce statistici să monitorizeze. Instrumentul nu este SQL Serverspecific - administratorii de sistem îl folosesc pentru a monitoriza Windows în sine, Exchange, serverele de fișiere și orice aplicație care poate întâmpina blocaje.
2.2 Lansarea Monitorului de performanță
Puteți lansa Monitorul de performanță folosind mai multe metode:
- Clic acasă, tip perfmon În caseta de căutare, faceți clic pe „Performand Monitor” din rezultatul căutării:
- Anunturi Windows + R, tip perfmon, și apăsați Intrați
- Navigheaza catre Panou de control -> Sistem și securitate -> Instrumente de administrare -> Performance Monitor
3. esențial SQL Server Contori de performanță
3.1 Contori de performanță ai memoriei
Contoarele de memorie sunt esențiale pentru monitorizare SQL Server performanță, deoarece indică dacă baza de date are suficiente resurse de memorie.
MBytes disponibili
Acest contor arată cantitatea de memorie fizică disponibilă imediat pentru alocare. Ar trebui să rămână destul de constantă și, în mod ideal, să nu scadă sub 4096 MB. Valorile mici pot indica faptul că SQL ServerSetarea maximă de memorie a este lăsată la valoarea implicită sau nu esteSQL Server aplicațiile consumă memorie.
Durata de viață a paginii
Durata de viață a paginii măsoară durata (în secunde) în care o pagină rămâne în buffer pool-ul fără a fi referențiată. O valoare normală este de 300 de secunde sau mai mult. Valorile mai mici indică o presiune excesivă asupra memoriei și o rotație excesivă a buffer-ului, reducând eficiența memoriei cache.
Raportul de accesări al memoriei cache a tamponului
Acest contor indică procentul de solicitări de date la care s-a răspuns folosind memoria cache (memorie) SQL, în loc să citiți de pe disc. De obicei, atinge sau depășește 99%. Valorile mai mici sugerează că SQL Server necesită mai multă memorie sau încă se încălzește după o repornire.
Granturi de memorie în așteptare
Aceasta arată numărul de procese care așteaptă memorie în cadrul SQL ServerÎn condiții normale, această valoare ar trebui să fie constant 0. Valorile mai mari indică o alocare insuficientă de memorie pentru SQL Server.
Memoria serverului țintă vs. memoria totală a serverului
Memoria serverului țintă indică cantitatea ideală de memorie SQL Server dorește să utilizeze. Memoria totală a serverului arată ce SQL Server utilizări actuale. Raportul dintre aceste valori ar trebui să fie de aproximativ 1. Diferențele semnificative pot indica presiune excesivă a memoriei sau memorie disponibilă insuficientă.
3.2 Contori de performanță ai procesorului
Contoarele CPU ajută la identificarea blocajelor procesorului și la înțelegerea modului în care SQL Server utilizează resurse de calcul.
% Timp procesor
Aceasta măsură procentul din timpul scurs pe care procesorul îl petrece executând fire de execuție care nu sunt inactive. Pe serverele active, valorile pot crește până la 100%, dar utilizarea susținută peste 70-75% indică de obicei probleme de performanță pentru utilizatori. Indexurile lipsă sau inadecvate cauzează adesea o utilizare ridicată a procesorului.
% Timp privilegiat
Timpul procesorului se împarte în modul Utilizator și modul Privilegiat (Kernel). Toate accesările la disc și operațiunile I/O au loc în modul Kernel. Dacă acest contor depășește 25%, este probabil ca sistemul să efectueze prea multe operațiuni I/O. Valorile normale variază între 5% și 10%.
Lungimea cozii procesorului
Acest contor arată firele de execuție care așteaptă resurse CPU. Valorile constant peste 1 (cu excepția cazului în care SQL Server compresie de rezervă) indică presiunea procesorului. Aceasta înseamnă adesea că alte aplicații sunt instalate pe SQL Server mașină, care încalcă cele mai bune practici.
Comutări de context/sec
Aceasta măsurătoare măsoară frecvența cu care procesorul comută între fire de execuție. Comutarea excesivă a contextului poate afecta performanța și indică o încărcare ridicată a sistemului.
3.3 Contori de performanță I/O pe disc
Contoarele de disc sunt esențiale pentru monitorizarea performanței SQL, deoarece I/O-ul pe disc devine adesea principalul blocaj în sistemele de baze de date.
% Timp pe disc
Aceasta înregistrează procentul de timp în care discul a fost ocupat cu operațiuni de citire/scriere. Valorile constant peste 85% indică un blocaj I/O. Deoarece discul este mult mai lent decât memoria, reducerea acestei valori îmbunătățește performanța.
Medii secunde disc/citire și medii secunde disc/scriere
Aceste contoare măsoară timpul mediu (în secunde) pentru operațiunile de citire și scriere. Dacă valorile medii depășesc 10-20 ms, durează prea mult să proceseze datele pe disc. Unitățile de jurnal de tranzacții necesită performanțe de scriere deosebit de rapide.
Lungimea cozii de disc
Aceasta indică solicitări restante de citire/scriere pe disc. Valorile constant mai mari de 2 (sau 2 per disc pentru matricele RAID) indică faptul că discul nu poate ține pasul cu solicitările I/O.
Bytes de disc/sec
Aceasta monitorizează rata de transfer de date către/de pe disc. Dacă aceasta depășește capacitatea nominală a discului, datele încep să se acumuleze, după cum indică creșterea lungimii cozii de așteptare pe disc.
Transferuri de disc/sec
Aceasta urmărește numărul de operațiuni de citire/scriere efectuate pe disc. SQL Server Accesul la date este de obicei aleatoriu, ceea ce este mai lent din cauza mișcării capului unității. Asigurați-vă că această valoare rămâne sub capacitatea maximă a unității de disc (de obicei 100/sec pentru unitățile standard).
3.4 SQL Server Contoare specifice
3.4.1 Contori din managerul de buffere
Monitorul contoarelor Buffer Manager SQL ServerOperațiunile bufferului de memorie:
- Citiri pagină/sec: Numărul cumulativ de citiri ale paginilor fizice ale bazei de date
- Scrieri de pagină/sec: Numărul cumulativ de scrieri ale paginilor fizice ale bazei de date
- Scrieri leneșe/sec: Numărul de buffere scrise de scriitorul leneș pentru a elibera memorie
- Pagini punct de control/sec: Pagini șterse de punct de control sau alte operațiuni care necesită ștergerea tuturor paginilor murdare
3.4.2 Contori de statistică SQL
Aceste contoare oferă informații despre SQL Server procesarea interogărilor:
- Cereri în lot/sec: Numărul de cereri SQL în lot primite de server. Acesta servește ca punct de referință pentru activitatea serverului
- Compilări SQL/sec: Numărul de compilări SQL. Ar trebui să fie 10% sau mai puțin din totalul solicitărilor în lot/sec.
- Recompilări SQL/sec: Numărul de recompilări SQL. Ar trebui să fie, de asemenea, 10% sau mai puțin din totalul cererilor în lot/sec.
3.4.3 Contoare statistice generale
- Conexiuni utilizator: Numărul de utilizatori conectați la sistem. Folosit ca punct de referință pentru a urmări creșterea conexiunilor în timp.
- Procese blocate: Numărul curent de procese blocate. În mod ideal, ar trebui să fie 0.
3.4.4 Contori din managerul de memorie
- Granturi de memorie în așteptare: Numărul total de procese care așteaptă acordarea de memorie în spațiul de lucru. În mod ideal, ar trebui să fie 0.
4. Configurarea Monitorului de performanță pentru SQL Server(Windows Vista / Server 2008 și versiuni ulterioare)
În primul rând, trebuie să creăm un container pentru a gestiona contoarele mai ușor:
- Pentru Windows Vista / Server 2008 și versiunile ulterioare, puteți crea seturi de colectoare de date în această secțiune.
- Pentru Windows XP / Server 2003 și versiunile anterioare, puteți crea jurnale de contorizare în secțiunea următoare.
4.1 Ce sunt seturile de colectoare de date?
Seturile de colectoare de date organizează contoarele de performanță, datele de urmărire a evenimentelor și informațiile de configurare a sistemului într-o singură unitate de colectare. Acestea oferă mai multă flexibilitate decât jurnalele simple ale contoarelor și permit colectarea automată și programată a datelor pentru monitorizarea completă a performanței bazei de date SQL.
4.2 Crearea unui set de colectori de date
Creați un set personalizat de colectori de date pentru monitorizare SQL Server contoare de performanță:
- Deschideți Monitorul de performanță
- Extinde Seturi de colectare de date
- Faceți clic dreapta Definit de utilizator
- Selectați Nou -> Set colector de date
- Introduceți un nume descriptiv (de exemplu, „SQL Server Indicatori de performanță”)
- Selectați Creați manual (avansat)
- Clic Pagina Următoare →
- Verifica Creați jurnale de date -> Contor de performanță
- Clic Pagina Următoare →
- Clic Adăuga pentru a selecta contoare
- Adăuga dorit SQL Server și contoare de sistem.
- set Interval de eșantionare
- Pentru monitorizare de rutină, utilizați 1 minut (60 de secunde)
- Pentru depanare activă, utilizați 15-30 de secunde
- Evitați rularea pe termen lung a capturilor de înaltă frecvență, deoarece acestea pot afecta performanța și pot genera un exces de date.
- Clic Pagina Următoare →
- Alegeți locația pentru salvarea jurnalelor
- Clic finalizarea, va fi creat un nou set de colectori de date.
- În mod implicit, noul Set de colectori de date va NU va porni automat. Trebuie să îl găsiți în panoul din stânga, sub Performanţă -> Seturi de colectare de date -> Definit de utilizator -> Colectorul dvs. de date, faceți clic dreapta pe el și alegeți acasă
4.3 Contoare cheie de adăugat
- Memorie -> MB disponibili
- Disc fizic -> Medie disc secunde/citire (toate instanțele, cu excepția _Total)
- Disc fizic -> Medie disc secunde/scriere (toate instanțele, cu excepția _Total)
- Disc fizic -> Citiri pe disc/sec (toate instanțele, cu excepția _Total)
- Disc fizic -> Scrieri pe disc/sec (toate instanțele, cu excepția _Total)
- Procesor -> % Timp procesor (toate instanțele, cu excepția _Total)
- SQLServer: Statistici generale -> Conexiuni utilizator
- SQLServer: Manager memorie -> Acorduri de memorie în așteptare
- SQLServer: Statistici SQL -> Cereri batch/sec
- SQLServer: Statistici SQL -> Compilări SQL/sec
- SQLServer: Statistici SQL -> Recompilări SQL/sec
- Sistem -> Lungimea cozii procesorului
4.4 Setarea condițiilor de oprire
Configurați condițiile de oprire pentru a preveni creșterea nelimitată a datelor:
- După crearea setului de colectori de date, faceți clic dreapta pe acesta și selectați Proprietăţi
- Apasă pe Stare de oprire fila
- Permite Durata totala
- Setați durata la 1 zi (24 de ore)
- Clic OK pentru a salva
Acest lucru asigură că jurnalul nu crește prea mult și repornește automat dacă este programat.
4.5 Programarea colectării datelor
Automatizați colectarea datelor pentru a asigura o monitorizare consecventă:
- Faceți clic dreapta pe setul de colectori de date și selectați Proprietăţi
- Apasă pe Program fila
- Clic Adăuga pentru a crea un nou program
- Configurați data și ora de începere
- Setați modelul de recurență (de exemplu, zilnic)
- Clic OK pentru a salva programul
Pentru pornirea automată, configurați setul de colectori de date să pornească la pornirea serverului, creând un declanșator de pornire în Planificatorul de activități Windows.
5. Configurarea Monitorului de performanță pentru SQL Server(Windows XP / Server 2003 și versiuni anterioare)
Pentru Windows XP / Server 2003 și versiunile anterioare, puteți crea jurnale de contoare, care vă permit să selectați un set de contoare de performanță și să le înregistrați periodic într-un fișier.
5.1 Crearea jurnalelor contorului
Urmați acești pași pentru a crea un nou jurnal de contorizare:
- Deschideți Monitorul de performanță
- Extinde Jurnalele de performanță și alertele în panoul din stânga
- Faceți clic dreapta Jurnalele contorului
- Selectați Setări noi de jurnal
- Denumiți jurnalul cu numele serverului bazei de date (de exemplu, „ProductionSQL01”)
- Clic OK pentru a începe configurarea
Crearea de jurnale separate pentru contor pentru fiecare server vă permite să testați performanța pe servere individuale fără a colecta date pentru toate serverele simultan.
5.2 Adăugarea contorilor de performanță
După crearea unui jurnal de contoare, adăugați contoarele de performanță specifice pe care doriți să le monitorizați:
- Apasă pe Adăugați contoare buton
- Schimbați numele computerului pentru a indica SQL Server instanță
- Anunturi Tab pentru a încărca obiectele de performanță disponibile
- Selectați un obiect de performanță din meniul derulant (de exemplu, Memorie)
- Alegeți contoare specifice din lista
- Selectați instanțe, dacă este cazul (de exemplu, procesoare individuale sau discuri)
- Clic Adăuga să includă contorul
- Repetați pentru toate contoarele dorite
- Clic Închide când este terminat
5.3 Configurarea intervalelor de eșantionare
Intervalul de eșantionare determină frecvența cu care Performance Monitor colectează date. Configurați intervale adecvate în funcție de nevoile dvs. de monitorizare:
- În proprietățile jurnalului contorului, localizați Date eșantion la fiecare
- Setați intervalul (implicit este 15 secunde)
- Pentru monitorizarea inițială, utilizați intervale de 1 minut pentru colectarea zilnică.
- Pentru depanare, utilizați intervale de 15-30 de secunde pentru rafale scurte.
- Clic OK a aplica
Rețineți că intervalele mai mici generează mai multe date, care pot fi mai greu de redat și analizat. Intervalele mai mari pot rata vârfuri importante. Echilibrați granularitatea datelor cu cerințele de stocare și analiză.
5.4 Configurarea fișierelor jurnal
Configurarea corectă a fișierelor jurnal asigură stocarea eficientă și accesibilă a datelor:
- Apasă pe Log Files filă în proprietățile jurnalului contorului
- Schimbați tipul fișierului jurnal la Fișier text (delimitat prin virgulă) pentru import ușor în Excel
- Clic Configurați
- Setați calea fișierului către o locație dedicată (de exemplu, un folder PerformanceLogs partajat)
- Clic OK a confirma
Folosește o partajare accesibilă în rețea pentru stocarea jurnalelor, astfel încât să poți accesa fișierele de la distanță și să le partajezi cu alți utilizatori.
5.5 Configurarea acreditărilor
Configurați acreditările corespunzătoare, astfel încât Performance Monitor să poată accesa de la distanță SQL Server instanțe:
- În proprietățile jurnalului contorului, localizați Run As
- Introduceți numele de utilizator al domeniului în formatul: DOMENIU\nume de utilizator
- Clic Setare parolă
- Introduceți și confirmați parola
- Clic OK pentru a salva
Acest lucru permite serviciului PerfMon să colecteze statistici folosind permisiunile domeniului dvs., mai degrabă decât propriile acreditări.
6. Analizarea datelor din Monitorul de performanță
6.1 Vizualizarea fișierelor jurnal în Monitorul de performanță
Monitorul de performanță poate afișa date istorice din fișierele jurnal salvate:
- Deschideți Monitorul de performanță
- În panoul din stânga, faceți clic pe Instrumente de monitorizare -> Performance Monitor.
- Faceți clic dreapta oriunde în zona graficului
- Selectați Proprietăţi
- Apasă pe Sursa fila
- Selectați fişiere log buton de radio
- Clic Adăuga
- Navigați la fișierul jurnal (.blg sau .csv)
- Selectați fișierul și faceți clic Operatii Deschise
- Folosește Interval de timp cursor pentru a selecta perioada pe care doriți să o analizați
- Clic OK pentru a închide caseta de dialog Proprietăți
- Faceți clic pe pictograma verde plus pentru a adăuga contoare din fișierul jurnal
- Selectați contoarele dorite pentru afișare
- Clic OK
Graficul va afișa acum date istorice din fișierul jurnal. Folosiți cursorul Interval de timp din Proprietăți pentru a restrânge perioadele de timp specifice pentru o analiză detaliată.
6.2 Exportarea datelor în Excel
Excel oferă capabilități puternice de analiză pentru datele contorului de performanță:
- Deschideți Monitorul de performanță cu fișierul jurnal încărcat
- Faceți clic dreapta oriunde în zona graficului
- Selectați Salvare date ca
- Alegeți o locație pentru fișier
- Selectați Fișier text (delimitat prin virgulă) (.csv) din meniul derulant
- Clic Economisește
- Deschideți fișierul CSV în Excel
Formatați datele exportate pentru o analiză mai bună:
- Ștergeți rândul 2 pe jumătate gol și goliți celula A1
- Formatați coloana A ca dată/oră
- Formatarea coloanelor numerice cu zero zecimale și separator de mii
- Găsiți și înlocuiți numele serverelor în anteturi (de exemplu, înlocuiți „\\NUMESERVER” cu spațiu)
- Curățați numele obiectelor din anteturi (de exemplu, „Memorie”, „Disc fizic”, „Procesor”)
- Reduceți dimensiunea fontului din antet la 8 puncte pentru o vizibilitate mai bună
6.3 Interpretarea valorilor contorului
6.3.1 Analiza contorului de memorie
Când analizați contoarele de memorie, căutați acești indicatori:
- MB disponibili: Ar trebui să rămână constant peste 4096 MB
- Durata de viață a paginii: Valorile peste 300 de secunde indică o memorie sănătoasă. Valorile mai mici sugerează presiune excesivă asupra memoriei.
- Raportul de accesări al memoriei cache tampon: Ar trebui să atingă sau să depășească 99%. Valorile mai mici indică citiri excesive pe disc.
- Granturi de memorie în așteptare: Ar trebui să fie întotdeauna 0. Orice valoare pozitivă indică o lipsă de memorie.
6.3.2 Analiza contorului CPU
Indicatorii de performanță ai procesorului includ:
- % Timp procesor: Utilizarea susținută de peste 75% indică probleme de performanță. Vârfurile de până la 100% sunt normale, dar nu ar trebui să persiste.
- Lungimea cozii procesorului: Valorile peste 1 indică presiunea CPU. Verificați Managerul de activități pentru a identifica ce procese consumă CPU.
- % Timp privilegiat: Ar trebui să rămână între 5-10%. Valorile peste 25% sugerează operațiuni I/O excesive.
6.3.3 Analiza contorului de disc
Praguri de performanță ale discului:
- Medie disc secunde/Citire și scriere: Ar trebui să rămână sub 10-20 ms. Valorile mai mari indică subsisteme de disc lente.
- Lungimea cozii de disc: Valorile constant peste 2 (sau 2 per disc în RAID) indică blocaje I/O
- % Timp pe disc: Valorile susținute peste 85% indică saturația discului
6.4 Utilizarea formulelor și statisticilor
Adăugați formule statistice în Excel pentru analiză rapidă:
- Introduceți 7 rânduri goale în partea de sus a foii de calcul
- Adăugați etichete în coloana A: Medie, Mediană, Min, Max, Abatere standard
- În celula B2, introduceți: =MEDIA(B9:B100) (ajustați B100 la ultimul rând de date)
- În celula B3, introduceți: =MEDIAN(B9:B100)
- În celula B4, introduceți: =MIN(B9:B100)
- În celula B5, introduceți: =MAX(B9:B100)
- În celula B6, introduceți: =STDEV(B9:B100)
- Copiați formulele în toate coloanele contorului
- Selectați celula B9 și apăsați Alt+W+F+Enter pentru a îngheța panourile
Aceste statistici ajută la identificarea tendințelor, a valorilor aberante și a intervalelor normale de funcționare pentru fiecare contor.
7. Instrumentul de analiză a performanței pentru jurnale (PAL)
7.1 Introducere în PAL
Performance Analysis for Logs (PAL) este un instrument gratuit dezvoltat de Clint Huffman care analizează jurnalele Performance Monitor și generează rapoarte HTML cu analiză a pragurilor. PAL compară datele de performanță cu pragurile cunoscute și oferă recomandări detaliate pentru SQL Server optimizarea performanței.
Descărcați PAL din depozitul GitHub: https://github.com/clinthuffman/PAL
7.2 Configurarea PAL
Instalați PAL urmând acești pași:
- Descărcați fișierul de configurare PAL de pe GitHub
- Rulați programul de instalare
- Clic Pagina Următoare → pe ecranul de bun venit
- Verificați și acceptați directorul de instalare
- Clic Pagina Următoare → a continua
- Clic Instalare pentru a începe instalarea
- Așteptați ca instalarea să se finalizeze
- Clic finalizarea
7.3 Procesarea fișierelor jurnal cu PAL
Analizați jurnalele Performance Monitor folosind PAL:
- Lansați PAL din meniul Start sau din directorul de instalare
- Apasă pe Jurnal contor fila
- Clic Naviga pentru a selecta fișierul .blg
- Navigați la fișierul jurnal Performance Monitor
- Clic Operatii Deschise
- Apasă pe Fișier prag fila
- Selectați un fișier de prag din meniul derulant (de exemplu, „SQL Server 2016” )
- Apasă pe Întrebări fila
- Răspundeți la întrebări despre configurația sistemului dvs.
- Specificați dacă dvs. SQL Server este OLTP sau Depozit de Date
- Introduceți memoria RAM totală disponibilă
- Apasă pe Opțiuni de ieșire fila
- Selectați un director de ieșire pentru raportul HTML
- Verifica HTML format de iesire
- Apasă pe Executa fila
- Revizuiți selecțiile dvs.
- Verifica Începeți execuția acum
- Clic finalizarea
7.4 Analizarea rapoartelor PAL
După ce PAL finalizează analiza, generează un raport HTML care conține:
- Rezumatul executiv al problemelor de performanță
- Analiză detaliată a contra-ului cu grafice
- Încălcări ale pragului evidențiate cu culoare
- Recomandări specifice pentru fiecare problemă
- Tendințele și modelele istorice
Raportul folosește coduri de culori pentru a indica gravitatea: roșu pentru probleme critice, galben pentru avertismente și verde pentru valori corecte. Consultați fiecare secțiune pentru a înțelege blocajele de performanță și urmați recomandările PAL pentru optimizare.
8. Alternativă SQL Server Instrumente de monitorizare
8.1 Încorporat SQL Server Instrumente
8.1.1 SQL Server Monitor de activitate
SQL Server Monitor de activitate afișează informații în timp real despre SQL Server procese și performanță:
- Operatii Deschise SQL Server Management Studio (SSMS) și conectarea la instanța serverului
- Faceți clic dreapta pe numele serverului în Object Explorer
- Selectați Monitor de activitate
Monitorul de activitate afișează procesele, așteptările resurselor, intrările/ieșirile din fișierele de date și interogările costisitoare recente. Oferă informații rapide despre activitatea curentă a bazei de date, dar nu stochează date istorice.
8.1.2 SQL Server Tabloul de bord de performanță
SQL Server Management Studio include rapoarte de performanță încorporate:
- In SQL Server Management Studio (SSMS), faceți clic dreapta pe SQL Server instanță în Object Explorer
- Selectați Rapoarte -> Rapoarte standard
- Alegeți dintre rapoartele disponibile, cum ar fi Tabloul de bord de performanță
Tabloul de bord al performanței oferă informații vizuale despre SQL Server performanța instanței, inclusiv utilizarea procesorului sistemului, solicitările curente în așteptare și indicatorii de performanță. Accesați-i prin meniul Rapoarte standard.
8.1.3 SQL Server profil
SQL Server profil capturi si analize SQL Server evenimente precum executarea interogărilor, operațiunile de tranzacții și activitățile de conectare.
A începe SQL Server profiler:
- In SQL Server Studio de management, faceți clic pe Instrumente -> SQL Server profil
Profiler generează o supraîncărcare semnificativă a performanței, așa că utilizați-l cu judecată și de preferință în afara orelor de vârf. Pentru majoritatea scenariilor, Extended Events oferă o performanță mai bună cu un impact mai mic.
8.1.4 Evenimente extinse
Evenimente extinse este un sistem ușor de monitorizare a performanței, încorporat în SQL Server. Înlocuiește SQL Server Profiler cu performanțe mai bune și cheltuieli generale mai mici.
Caracteristici cheie includ:
- Monitorizare detaliată a evenimentelor specifice
- Impact minim asupra performanței
- Sesiuni de evenimente personalizabile
- Integrare cu SSMS și alte instrumente
- Suport pentru filtrare și agregare complexă
Creați sesiuni de evenimente extinse prin SSMS:
- In Explorator de obiecte, extindeți serverul și accesați Management -> Evenimente extinse -> Sesiuni
- Faceți clic dreapta pe Sesiuni Și alegeți Asistent pentru sesiune nouă
- Urmați instrucțiunile pentru a începe o sesiune nouă.
8.1.5 Vizualizări dinamice de gestionare (DMV-uri)
DMV-urile expun informații detaliate despre starea serverului pentru monitorizarea stării, diagnosticarea problemelor și reglarea performanței. Printre DMV-urile cheie se numără:
- sys.dm_exec_query_stats: Statistici de performanță a interogărilor
- sys.dm_os_wait_stats: Tipuri de așteptare care afectează performanța serverului
- sys.dm_os_performance_counters: SQL Server date contor de performanță
- sys.dm_exec_requests: Se execută în prezent cereri
- sys.dm_exec_sessions: Sesiuni de utilizator active
Interogați aceste vizualizări folosind T-SQL pentru a accesa date de performanță în timp real și valori istorice.
Utilizare de bază
-- 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 Soluții de monitorizare de la terți
Redgate SQL Monitor
Redgate SQL Monitor este specializat în monitorizare SQL Server și medii Azure SQL Database. Oferă monitorizare la nivelul întregii proprietăți, alerte și tablouri de bord personalizabile, capacități de raportare detaliată și integrare cu alte instrumente Redgate.
SolarWinds SQL Server Instrument de monitorizare
SolarWinds SQL Server Instrumentul de monitorizare, cunoscut și sub numele de SQL Sentry, este conceput pentru a diagnostica, rezolva și preveni problemele grave de performanță cu SQL Server.
IDERA SQL Server Instrument de monitorizare a performanței
IDERA SQL Diagnostic Manager este un instrument puternic SQL Server Instrument de monitorizare a performanței conceput pentru a ajuta la monitorizarea, diagnosticarea și reglarea proactivă a performanței.
Monitorizarea SQL a Managerului de aplicații
Managerul de aplicații oferă un Microsoft SQL Server Instrument de monitorizare care oferă soluții IT utile. Este conceput pentru a supraveghea performanța bazelor de date SQL, identificând simultan erorile și rezolvând problemele care ar putea duce la opriri în funcționarea unei organizații.
8.3 Instrumente de monitorizare open source
Administrator de baze de date Dash
DBA Dash este un instrument de monitorizare gratuit, open-source, care oferă informații despre SQL Server sănătate, performanță și activitate. Este util în special pentru mediile mici și medii și include verificări zilnice ale administratorului de baze de date, monitorizare a performanței și urmărire a configurației.
SQLWATCH
SQLWATCH oferă servicii descentralizate, aproape în timp real SQL Server monitorizare cu granularitate de 5 secunde pentru captarea vârfurilor de sarcină de lucru. Este compatibil cu Grafana pentru tablouri de bord în timp real și Power BI pentru analiză aprofundată. Instrumentul oferă opțiuni extinse de configurare, zero cerințe de întreținere și scalabilitate nelimitată.
Opserver
Dezvoltat de Stack Exchange, Opserver monitorizează mai multe sisteme, inclusiv SQL Server, Redis și Elasticsearch. Oferă o vizualizare „toate serverele” pentru statisticile CPU, memorie, rețea și hardware din întreaga infrastructură.
sp_CineEsteActiv
sp_WhoIsActive este o procedură stocată cuprinzătoare de monitorizare a activității, creată de Adam Machanic. Funcționează cu toate SQL Server versiuni din 2005 până la versiunile actuale și este utilizat pe scară largă de SQL Server DBA-uri pentru monitorizarea activității în timp real.
Pentru a utiliza sp_WhoIsActive, descărcați-l de pe http://whoisactive.com/, instalați-l în baza de date și executați:
EXEC sp_WhoIsActive
Procedura afișează interogările care se execută în prezent, informațiile de așteptare, detaliile de blocare și consumul de resurse.
9. Cele mai bune practici pentru SQL Server Performance Monitor
9.1 Stabilirea unor valori de referință pentru performanță
Nivelurile de referință ale performanței stabilesc parametrii normali de funcționare pentru SQL Server mediu. Fără valori de referință, nu puteți determina dacă indicatorii actuali indică probleme sau reprezintă un comportament tipic.
Creați linii de bază prin:
- Colectarea datelor de performanță în timpul operațiunilor normale timp de cel puțin o săptămână
- Capturarea indicatorilor atât în orele de vârf, cât și în afara orelor de vârf
- Documentarea valorilor tipice pentru contoarele cheie
- Înregistrarea variațiilor sezoniere, dacă este cazul
- Stocarea datelor de referință pentru comparare cu valorile viitoare
Actualizați valorile de referință trimestrial sau după modificări semnificative ale infrastructurii, actualizări ale aplicațiilor sau modificări ale bazei de date.
9.2 Stabilirea pragurilor de alertă adecvate
Configurați praguri inteligente pentru a primi alerte relevante fără a vă copleși cu notificări:
- Acorduri de memorie în așteptare > 0 indică presiune asupra memoriei
- Lungimea cozii procesorului > 2 per nucleu sugerează un blocaj al procesorului
- Sec. disc/Citire sau Scriere > 20 ms indică I/O lent
- Procese blocate > 5 semnale de probleme de conflict
- Durata de viață a paginii < 300 de secunde indică o suprasolicitare a memoriei
Ajustați pragurile în funcție de datele de referință și de caracteristicile specifice ale volumului de lucru. Utilizați praguri adaptive care țin cont de variațiile normale din mediul dumneavoastră.
9.3 Revizuirea și analiza periodică a datelor
Programați evaluări regulate ale performanței pentru a identifica tendințele și problemele emergente:
- Zilnic: Examinați valorile de nivel înalt și alertele recente
- Săptămânal: Realizarea unei analize aprofundate a tendințelor de performanță
- Lunar: Generați rapoarte complete și comparați-le cu valorile de referință
- Trimestrial: Revizuirea planificării capacității și a tendințelor pe termen lung
Documentați constatările și urmăriți îmbunătățirile performanței în timp.
9.4 Echilibrarea cheltuielilor generale de monitorizare
Monitorizarea în sine consumă resurse, așadar echilibrați colectarea datelor cu impactul asupra performanței:
- Folosiți intervale de 30-60 de secunde pentru monitorizare continuă
- Folosiți intervale de 15 secunde doar pentru depanarea activă
- Limitare colector de date Setați durata pentru a evita excesul de date
- Stocarea jurnalelor pe unități separate de fișierele bazei de date
- Arhivați datele vechi de performanță pentru a menține dimensiuni de fișiere gestionabile
Monitorul de performanță adaugă o suprasarcină minimă atunci când este configurat corect, de obicei sub 2% din resursele de sistem.
9.5 Păstrarea datelor pe termen lung
Păstrați datele privind performanța pentru analize semnificative ale tendințelor și planificarea capacității:
- Păstrați date de performanță timp de cel puțin 1-2 ani
- Arhivați datele într-un spațiu de stocare separat după 3-6 luni
- Comprimați fișierele jurnal mai vechi pentru a economisi spațiu
- Documentați orice evenimente sau schimbări semnificative care afectează performanța
Având în vedere dimensiunea relativ mică a datelor contorului de performanță, păstrarea acestora pe termen nelimitat este adesea fezabilă și valoroasă pentru analiza pe termen lung.
9.6 Integrarea cu practicile DevOps
Integrarea monitorizării performanței bazei de date în conductele CI/CD:
- Includeți indicatorii de performanță ai bazei de date în validarea implementării
- Automatizați testarea performanței pentru noile versiuni
- Validați faptul că modificările de cod nu au un impact negativ asupra performanței
- Creați repere de performanță pentru fiecare versiune
- Integrați alertele de monitorizare cu sistemele de gestionare a incidentelor
10. Depanarea problemelor comune de performanță
10.1 Identificarea blocajelor procesorului
Blocajele procesorului se manifestă prin timpi de răspuns lenți la interogări și utilizare ridicată a procesorului. Urmați acești pași pentru a diagnostica problemele procesorului:
- Verificați contorul Lungimea cozii procesorului. Valorile peste 2 per nucleu indică presiunea procesorului.
- Revizuirea procentului de timp al procesorului. Valorile susținute peste 75% sugerează blocajul procesorului
- Desktop la distanță către SQL Server
- Deschideți Managerul de activități (Ctrl+Shift+Esc)
- Apasă pe procese fila
- Verifica Afișați procesele de la toți utilizatorii
- Apasă pe Procesor antet de coloană pentru sortare după utilizarea CPU
- Identificați care procese consumă resurse CPU
Dacă nuSQL Server aplicațiile consumă o cantitate semnificativă de CPU, eliminați-le de pe serverul bazei de date. Dacă sqlservr.exe utilizează o cantitate mare de CPU, investigați folosind aceste metode:
- Verificați Compilări SQL/sec și Recompilări SQL/sec. Valorile peste 10% din solicitările batch/sec indică o compilare excesivă.
- Interogați sys.dm_exec_query_stats pentru a identifica interogările care solicită intens procesorul
- Revizuirea planurilor de execuție pentru indecși lipsă sau operațiuni ineficiente
- Luați în considerare adăugarea de indexuri pentru a reduce scanările de tabele
10.2 Diagnosticarea problemelor de memorie
Problemele de memorie au un impact semnificativ SQL Server performanță. Diagnosticați problemele de memorie folosind acești indicatori:
Picături de memorie disponibile
Dacă MBytes disponibili scad constant sub 100 MB, sistemul de operare se confruntă cu o insuficiență de memorie. Windows se poate descărca. SQL Server memorie pe disc, provocând o degradare a performanței.
Durată de viață redusă a paginii
O durată de viață estimată a paginii sub 300 de secunde indică o rotație ridicată a memoriei cache din buffer. Aceasta sugerează fie o alocare insuficientă de memorie, fie o presiune excesivă asupra memoriei din partea interogărilor.
Rată de accesare scăzută a memoriei cache din buffer
Rata de accesare a memoriei tampon sub 99% înseamnă SQL Server citește frecvent date de pe disc în loc de memorie. Acest lucru se întâmplă atunci când pool-ul de buffere este prea mic sau SQL Server încă se încălzește după repornire.
Granturi de memorie în așteptare
Orice valoare mai mare de 0 pentru Granturi de memorie în așteptare indică faptul că interogările așteaptă granturi de memorie. Aceasta reprezintă o lipsă critică de memorie care necesită atenție imediată.
Pentru a rezolva problemele de memorie:
- Configurați SQL Server setarea maximă a memoriei pentru a lăsa suficientă memorie RAM pentru sistemul de operare (de obicei 4-8 GB, în funcție de dimensiunea serverului)
- Activează permisiunea „Blocare pagini în memorie” pentru SQL Server cont de serviciu
- Adăugați mai multă memorie RAM fizică la server dacă presiunea memoriei persistă
- Identificați și optimizați interogările care consumă multă memorie
10.3 Rezolvarea problemelor de intrare/ieșire pe disc
Problemele de intrare/ieșire pe disc devin frecvent principalul blocaj de performanță în sistemele de baze de date. Diagnosticați problemele legate de disc folosind aceste metode:
Lungime mare a cozii de disc
O lungime a cozii de disc constant peste 2 (sau 2 per disc pentru RAID) indică faptul că subsistemul de disc nu poate ține pasul cu solicitările I/O. Acest lucru creează o acumulare de operațiuni în așteptare.
Latență excesivă a discului
Valorile Avg. Disk sec/Read și Avg. Disk sec/Write peste 10-20ms indică un răspuns lent al discului. Unitățile de jurnal de tranzacții necesită performanțe deosebit de rapide, ideal sub 5ms pentru scrieri.
Timp pe disc procentual ridicat
Un procent susținut de timp pe disc peste 85% indică o saturație a discului. Discul își petrece cea mai mare parte a timpului procesând cereri I/O, rămânând puțină capacitate inactivă.
Înainte de a rezolva problemele legate de disc, verificați dacă acestea nu sunt simptome ale unor probleme de memorie. Forțe de memorie insuficiente SQL Server pentru a citi mai multe date de pe disc, umflând artificial metricile discului.
Pentru a rezolva problemele reale de intrare/ieșire pe disc:
- Actualizați la discuri mai rapide (SSD-uri în loc de HDD-uri)
- Implementați configurații RAID pentru performanțe mai bune
- Separați fișierele bazei de date, jurnalele de tranzacții și tempdb pe unități fizice diferite
- Adăugați mai multă memorie pentru a reduce citirile pe disc
- Optimizați indexurile pentru a reduce I/O-urile inutile
- Revizuirea și optimizarea interogărilor slab performante
10.4 Abordarea blocajelor și a blocajelor
Blocarea are loc atunci când o sesiune deține blocaje care împiedică continuarea altor sesiuni. Monitorizați acești contori pentru a identifica problemele de blocare:
- Procese blocate: În mod ideal, ar trebui să fie 0
- Blocare așteptări/sec: Numărul de cereri de blocare care necesită așteptare
- Timp mediu de așteptare: Durata medie a așteptărilor de blocare
Pentru a investiga blocarea:
- Deschideți Monitorul de activitate în SSMS
- extinde procese secțiune
- Căutați procese cu valori diferite de zero Blocat de Valorile
- Identificați ID-ul sesiunii blocante
- Examinați interogările care cauzează blocarea
Folosește sp_WhoIsActive pentru o analiză mai detaliată a blocărilor. Intrările excesive de wait_info indică adesea probleme de conflict sau blocare în tempdb.
Pentru a reduce blocajul:
- Minimizează durata tranzacției
- Utilizați niveluri de izolare adecvate
- Adăugați indexuri pentru a reduce durata blocării
- Luați în considerare izolarea READ_COMMITTED_SNAPSHOT
- Revizuirea și optimizarea interogărilor cu rulare lungă
10.5 Probleme de performanță ale interogărilor
Identificarea interogărilor costisitoare este esențială pentru monitorizarea performanței SQL. Folosiți aceste metode pentru a găsi interogările problematice:
Utilizarea Monitorului de activitate
- În SSMS, faceți clic dreapta pe numele serverului
- Selectați Monitor de activitate
- Extinde Interogări recente costisitoare
- Revizuirea interogărilor cu utilizare intensă a CPU-ului, durată mare sau citiri logice
Utilizarea DMV-urilor
Interogați sys.dm_exec_query_stats pentru a identifica interogările care consumă multe resurse:
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
Analizarea planurilor de execuție
- În SSMS, deschideți o nouă fereastră de interogare
- Clic Afișați planul de execuție estimat (Ctrl+L) sau Includeți planul de execuție real (Ctrl+M)
- Executați interogarea
- Revizuirea planului de execuție pentru operațiuni costisitoare
- Căutați scanări de tabele, scanări de indexuri sau operațiuni cu costuri ridicate
Optimizați interogările prin:
- Adăugarea indexurilor adecvate
- Rescrierea interogărilor pentru a evita operațiunile costisitoare
- Actualizarea statisticilor
- Utilizarea unor nume specifice de coloane în loc de SELECT *
- Evitarea clauzelor DISTINCT sau ORDER BY inutile
10.6 Detectarea și remedierea bazei de date corupte
Corupția bazei de date poate cauza degradarea performanței, pierderi de date și erori de sistem. Detectarea și remedierea rapidă a corupției sunt esențiale pentru menținerea sănătății bazei de date.
Indicatori de corupere a bazei de date
Fiți atenți la aceste semne de potențială corupție:
- Mesaje de eroare în SQL Server jurnal de erori (eroarea 823, 824 sau 825)
- Erori neașteptate ale aplicației la accesarea anumitor tabele
- Performanță lentă a interogărilor pe interogările anterior rapide
- SQL Server blocaje sau reporniri neașteptate
- Pagini suspecte care apar în tabelul msdb.dbo.suspect_pages
Utilizarea DBCC CHECKDB pentru detectare
DBCC CHECKDB este instrumentul principal pentru detectarea coruperii bazei de date. Rulați-l în mod regulat pentru a depista problemele din timp.
Monitorizarea paginilor suspecte
SQL Server înregistrează automat paginile suspecte în baza de date msdb:
SELECT
database_id,
file_id,
page_id,
event_type,
error_count,
last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)
Orice rânduri returnate indică probleme de corupție care necesită atenție imediată.
Strategii de prevenire a corupției
- Activează verificarea paginii cu opțiunea CHECKSUM
- Mențineți copii de rezervă regulate ale bazei de date
- Folosește hardware fiabil cu corecție de erori
- Monitorizați starea de sănătate a discului folosind instrumentele producătorului
- Programați rulări regulate DBCC CHECKDB
- A pastra SQL Server actualizat cu cele mai recente patch-uri
Opțiuni de recuperare și reparare
Dacă sunt detectate corupții, puteți încerca instrumentul încorporat DBCC CHECKDB pentru a le remedia. Dacă eșuează, utilizați instrumente terțe, cum ar fi DataNumen SQL Recovery care poate face față corupțiilor severe.
11. Tehnici avansate de monitorizare
11.1 Monitorizarea depozitului de interogări
Magazin de interogări, introdus în SQL Server 2016, capturează automat datele de performanță ale interogărilor. Oferă informații valoroase despre comportamentul interogărilor, planurile de execuție și tendințele de performanță.
Activarea depozitului de interogări
- În SSMS Object Explorer, faceți clic dreapta pe o bază de date
- Selectați Proprietăţi
- Apasă pe Magazin de interogări pagină
- In Mod de operare (solicitat), Selectați Citeste, scrie
- Configurați setări suplimentare după cum este necesar
- Clic OK
Monitorizarea performanței interogărilor
Accesați rapoartele Query Store prin intermediul Object Explorer:
- Extindeți baza de date în Object Explorer
- Extinde Magazin de interogări
- Selectați din rapoartele disponibile:
- Interogări regresate
- Consumul total de resurse
- Cele mai consumatoare de resurse interogări
- Interogări cu planuri forțate
- Interogări urmărite
Detectarea regresiei planului
Query Store detectează automat când planurile de execuție a interogărilor se modifică și performanța se degradează. Consultați raportul Interogări regresate pentru a identifica interogările afectate de modificările planului.
Managementul planului forțat
Când Query Store identifică un plan de execuție mai bun, forțează SQL Server pentru a-l folosi:
- Deschideți interogarea în Query Store
- Faceți clic dreapta pe planul dorit
- Selectați Planul Forței
Acest lucru îmbunătățește imediat performanța fără a fi necesare modificări de cod.
11.2 Monitorizarea întreținerii indexului
Fragmentarea indexului degradează performanța interogărilor în timp. Monitorizați și întrețineți indexurile în mod regulat pentru a asigura performanțe optime.
Verificarea fragmentării
Folosește această interogare pentru a verifica fragmentarea indexului:
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
Executați această interogare în afara orelor de vârf, deoarece poate necesita multe resurse.
Analiza densității paginii
Densitatea paginilor indică cât de pline sunt paginile index. Densitatea scăzută consumă spațiu și reduce performanța:
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
Decizii privind reorganizarea vs. reconstrucția
Alegeți operațiunile de întreținere a indexului pe baza nivelurilor de fragmentare:
- Fragmentare 10-30%: Folosește ALTER INDEX REORGANIZE
- Fragmentare > 30%: Folosește ALTER INDEX REBUILD
- Fragmentare < 10%: Nu este necesară nicio acțiune
Operațiunile de reorganizare necesită mai puține resurse și pot rula online. Operațiunile de reconstrucție sunt mai detaliate, dar consumă resurse semnificative.
11.3 Actualizări ale statisticilor bazei de date
Ajutor pentru statisticile bazelor de date SQL ServerOptimizatorul de interogări creează planuri de execuție eficiente. Statisticile învechite duc la performanțe slabe ale interogărilor.
Reconstrucția automată a statisticilor
Activează actualizările automate ale statisticilor:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Monitorizarea statisticilor de sănătate
Verificați când au fost actualizate ultima dată statisticile:
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
Actualizați statisticile manual atunci când este necesar:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Colectarea datelor de performanță personalizate
Creați soluții personalizate de monitorizare a performanței prin interogarea directă a fișierului sys.dm_os_performance_counters și stocarea rezultatelor în tabele.
Crearea de scripturi de colecție personalizate
Construiți o procedură stocată pentru a colecta date despre contorul de performanță:
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
Utilizarea fișierului sys.dm_os_performance_counters
Interogați direct contoarele de performanță:
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
Stocarea datelor istorice
Creați un tabel pentru a stoca indicatorii de performanță în timp:
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
Metode pivotate de stocare a datelor
Stocați datele în format pivotat cu un rând per eșantionare și o coloană per contor. Acest lucru reduce spațiul de stocare și îmbunătățește performanța interogărilor în comparație cu stocarea unui rând per contor per eșantion.
11.5 Monitorizare multi-server
Pentru medii cu mai multe SQL Server cazuri, implementați monitorizare centralizată.
Abordare centralizată de monitorizare
- Creați o bază de date dedicată monitorizării pe un server separat
- Colectați date de pe toate serverele în depozitul central
- Utilizare SQL Server Lucrări de agent pentru a rula scripturi de colectare
- Implementați o colecție de contoare de performanță accesibile din rețea
Monitorizare de la distanță a serverului
Configurați Performance Monitor pentru a colecta date de la servere la distanță specificând numele serverelor la adăugarea contoarelor. Asigurați-vă că regulile firewall permit traficul Performance Monitor.
Raportare pe mai multe servere
Creați rapoarte care compară performanța pe mai multe servere pentru a identifica valorile aberante și dezechilibrele de capacitate.
12. Monitorizarea SQL Server în mediile cloud
12.1 Monitorizarea bazei de date Azure SQL
Baza de date Azure SQL oferă capabilități de monitorizare încorporate care diferă de cele locale SQL Server.
Integrare Azure Monitor
Azure Monitor colectează automat metrici din baza de date Azure SQL, inclusiv:
- Utilizarea DTU sau vCore
- Utilizarea depozitului
- Statistici de conectare
- Blocaje și expirari
Accesați aceste metrici prin intermediul portalului Azure sau al API-ului Azure Monitor.
Funcții de monitorizare încorporate
Baza de date Azure SQL include:
- Recomandări de reglare automată
- Informații despre performanța interogărilor
- Informații inteligente pentru detectarea anomaliilor
- Alerte și diagnosticare încorporate
Informații despre performanța interogărilor
Această funcție oferă vizualizarea interogărilor care consumă cele mai multe resurse, analiza duratei interogărilor și tendințele istorice ale performanței. Accesați-o prin intermediul portalului Azure, în resursa dvs. SQL Database.
12.2 Instrumente de monitorizare cloud-native
Platformele cloud oferă soluții native de monitorizare optimizate pentru mediile lor:
- Azure Monitor și Application Insights pentru baza de date Azure SQL
- AWS CloudWatch pentru RDS SQL Server
- Monitorizare Google Cloud pentru cloud SQL Server
Aceste instrumente se integrează perfect cu infrastructura cloud și oferă monitorizare unificată pentru toate resursele cloud.
Monitorizarea mediului hibrid
Pentru implementări hibride care se întind pe servere locale și în cloud, utilizați instrumente care acceptă ambele medii, cum ar fi Redgate SQL Monitor, SolarWinds DPA sau soluții personalizate care utilizează colectarea centralizată a datelor.
12.3 Diferențe de performanță în cloud
Cloud SQL Server mediile au caracteristici unice:
Modele de alocare a resurselor
Furnizorii de cloud utilizează diferite metode de alocare a resurselor (DTU, vCore, serverless) care afectează modul în care interpretați indicatorii de performanță. Înțelegeți limitele și caracteristicile nivelului dvs. de servicii.
Considerații de scalare
Mediile cloud oferă capabilități de scalare dinamică. Monitorizați utilizarea resurselor pentru a determina când să scalați în sus sau în jos. Multe platforme cloud oferă scalare automată pe baza pragurilor de performanță.
13. Automatizarea monitorizării performanței
13.1 SQL Server Locuri de muncă de agent
Automatizați colectarea datelor folosind SQL Server Lucrări ale agenților pentru monitorizare consistentă fără intervenție manuală.
Colectarea de date programată
- În SSMS, extindeți SQL Server Agent
- Faceți clic dreapta Locuri de munca și selectați Nou loc de muncă
- Denumiți jobul (de exemplu, „Colectați indicatori de performanță”)
- Clic paşi și adăugați un nou pas
- Setați Tipul la Script Transact-SQL
- Introduceți scriptul de colectare a datelor
- Clic orarele și adăugați un program
- Configurați frecvența (de exemplu, la fiecare 5 minute)
- Clic OK să creeze locul de muncă
Raportare automată
Creați joburi care generează și trimit prin e-mail rapoarte de performanță:
- Creați o procedură stocată care generează rapoarte
- Utilizarea Database Mail pentru a trimite rapoarte prin e-mail
- Programați jobul să se execute zilnic sau săptămânal
13.2 Automatizare PowerShell
PowerShell oferă capabilități puternice de automatizare pentru SQL Server monitor de performanță.
Scripturi de colectare a contorului de performanță
$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
Interogări WMI
Folosește WMI pentru a colecta date de performanță de la servere la distanță:
$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"
Alertă automată
Creați scripturi PowerShell care verifică valorile indicatorilor și trimit alerte atunci când pragurile sunt depășite:
$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 Crearea tablourilor de bord de monitorizare
Vizualizați datele de performanță cu ajutorul tablourilor de bord interactive pentru informații mai detaliate.
Integrare Power BI
- Conectați Power BI la tabelele de date privind performanța
- Creați vizualizări pentru indicatori cheie
- Adăugați slicere pentru intervalul de timp și selecția serverului
- Publicarea tablourilor de bord în serviciul Power BI
- Configurați programele de reîmprospătare automată
Crearea tablourilor de bord în timp real
Folosește instrumente precum Grafana sau aplicații web personalizate pentru a crea tablouri de bord în timp real care interoghează direct DMV-urile și contoarele de performanță.
Vizualizare istorică a tendințelor
Construiți diagrame liniare care să arate tendințele în timp pentru:
- Utilizarea procesorului
- Folosirea memoriei
- Disk I / O
- Performanța interogărilor
- Numărul de conexiuni
14. Studii de caz și exemple practice
14.1 Studiu de caz: Rezolvarea presiunii memoriei
Identificarea simptomelor
O producție SQL Server În orele de vârf, utilizatorii s-au plâns de timpi de răspuns lenți la interogări.
Contraanaliza
Datele Monitorului de Performanță dezvăluite:
- Durata de viață a paginii a scăzut la 50 de secunde (normal: >300)
- Rata de accesare a memoriei cache a tamponului a scăzut la 85% (normal: >99%)
- Granturile de memorie în așteptare au afișat frecvent valori între 5 și 10
- Citirile pe disc fizic/sec au crescut semnificativ
Pași de rezoluție
- verificate SQL Server setarea memoriei maxime – am descoperit că era setată la valoarea implicită (nelimitată)
- Memoria totală a serverului a fost analizată comparativ cu memoria serverului țintă – s-a evidențiat o diferență semnificativă
- Am configurat memoria maximă a serverului pentru a lăsa 8 GB pentru sistemul de operare
- Permisiunea „Blocare pagini în memorie” a fost activată pentru SQL Server cont de serviciu
- S-au adăugat 32 GB de RAM suplimentară la server
- Performanță monitorizată timp de o săptămână – Durata de viață a paginii s-a stabilizat peste 500 de secunde
Rezultat: Timpii de răspuns la interogări s-au îmbunătățit cu 60%, reclamațiile utilizatorilor au încetat, iar performanța aplicației a revenit la normal.
14.2 Studiu de caz: Optimizarea performanței procesorului
Identificarea simptomelor
A SQL Server a prezentat în mod constant o utilizare a procesorului de peste 90% în timpul orelor de program, provocând performanțe lente ale aplicațiilor și frustrarea utilizatorilor.
Contraanaliza
Monitorizarea performanței a relevat:
- Timpul de procesare (%) a fost în medie de 92%, cu creșteri frecvente de până la 100%
- Lungimea cozii procesorului constant peste 4 (serverul avea 8 nuclee)
- Compilările SQL/sec au fost de 25% din solicitările în lot/sec (ar trebui să fie <10%)
- Recompilările SQL/sec au fost de 15% din cererile în lot/sec
Pași de rezoluție
- A folosit DMV-uri pentru a identifica cele mai mari interogări care consumă CPU
- Planuri de execuție analizate pentru interogările identificate
- S-au descoperit mai multe scanări de tabele pe tabele mari din cauza lipsei indexurilor
- A creat indexuri adecvate pe baza recomandărilor planului de execuție
- A fost identificat un SQL dinamic care cauzează compilări excesive
- Codul aplicației a fost modificat pentru a utiliza interogări parametrizate
- Ghid de plan implementat pentru proceduri stocate problematice
- Statistici actualizate privind tabelele utilizate intens
Rezultat: Utilizarea procesorului a scăzut la o medie de 45% în timpul orelor de program. Timpii de execuție a interogărilor s-au îmbunătățit cu 70%. Timpul de răspuns al aplicațiilor s-a îmbunătățit semnificativ.
14.3 Studiu de caz: Rezolvarea blocajelor I/O pe disc
Identificarea simptomelor
Utilizatorii au raportat un răspuns extrem de lent al aplicației în timpul operațiunilor de încărcare a datelor și al procesării în loturi de seară.
Contraanaliza
Datele de performanță au arătat:
- Media discului pe unitatea jurnalului de tranzacții a depășit 45 ms secunde/scriere
- Lungimea medie a cozii de disc pe unitatea de fișiere de date a fost de 12
- % Timp pe disc a rămas peste 95% timp de ore în timpul joburilor în lot
- Scrierile de pagini/sec au fost excepțional de mari
Pași de rezoluție
- Setările de memorie verificate au fost corespunzătoare – nu s-au găsit probleme de memorie
- Configurația discului analizată – s-au descoperit toate fișierele de pe același set de axuri
- Jurnale de tranzacții separate pe unități SSD rapide dedicate
- Am mutat tempdb pe unități SSD separate
- Implementate mai multe fișiere de date tempdb (unul per nucleu)
- Unități de fișiere de date actualizate la configurația SSD RAID 10
- Lucrări în lot optimizate pentru utilizarea unor loturi de tranzacții mai mici
- Indexuri adăugate pentru a reduce scanările inutile ale tabelelor în timpul operațiunilor în lot
Rezultat: Timpul mediu de scriere pe disc a scăzut la 3 ms. Lungimea medie a cozii de așteptare pe disc a fost sub 1. Timpul de finalizare a lucrărilor în lot a fost redus cu 75%.
15. Tendințele viitoare în SQL Server Monitorizarea
15.1 Integrarea AI și Machine Learning
Inteligența artificială și învățarea automată transformă SQL Server monitor de performanță.
Analize predictive
Modelele de învățare automată prevăd nevoile viitoare de resurse pe baza datelor istorice. Aceste sisteme pot prognoza:
- Când capacitatea de stocare va fi epuizată
- Cerințe estimate ale procesorului și memoriei în perioadele de vârf
- Degradarea performanței interogărilor înainte ca aceasta să afecteze utilizatorii
- Momente optime pentru operațiunile de întreținere
Detectarea anomaliilor
Instrumentele bazate pe inteligență artificială detectează automat tipare neobișnuite în indicatorii de performanță. Acestea identifică anomalii pe care administratorii umani le-ar putea rata și disting între variațiile normale și problemele reale.
Remediere automată
Sistemele de auto-reparare rezolvă automat problemele comune atunci când sunt detectate:
- Reporniți serviciile care s-au oprit
- Realocare resurse în timpul sarcinii maxime
- Aplicați remedieri rapide pentru problemele cunoscute
- Reconstruiți automat indexurile fragmentate
15.2 Evoluția monitorizării bazate pe cloud
Monitorizarea în cloud continuă să evolueze cu noi capabilități.
Platforme de monitorizare unificate
Platformele moderne oferă vizibilitate dintr-o singură fereastră asupra:
- La fața locului SQL Server cazuri
- Baze de date găzduite în cloud
- Medii hibride
- Performanța aplicației
- Indicatori de infrastructură
Tendințe de observabilitate
Trecerea de la monitorizare la observabilitate pune accentul pe:
- Înțelegerea comportamentului sistemului din ieșiri
- Corelarea metricilor, jurnalelor și urmelor
- Perspective aprofundate asupra sistemelor distribuite
- Diagnosticarea problemelor în timp real
15.3 Sisteme de baze de date cu auto-reparare
Viitor SQL Server Versiunile vor include mai multe capacități autonome.
Optimizare automată
Bazele de date se vor optimiza continuu prin:
- Crearea și eliminarea automată a indexurilor în funcție de volumul de lucru
- Ajustarea setărilor de configurare pentru performanță optimă
- Rescrierea transparentă a interogărilor ineficiente
- Gestionarea dinamică a alocării resurselor
Reglare inteligentă
Sistemele avansate vor învăța din modelele de performanță și vor aplica automat recomandările de optimizare, reducând necesitatea intervenției manuale a administratorilor de baze de date.
16. Concluzie și concluzii cheie
16.1 Rezumatul practicilor esențiale de monitorizare
ultima modificare in SQL Server Monitorizarea performanței necesită o abordare cuprinzătoare care combină instrumente, tehnici și cele mai bune practici.
Recapitulare Controale Critice
Concentrați eforturile de monitorizare asupra acestor indicatori esențiali:
- Memorie: Durata de viață a paginii, Rata de accesare a memoriei cache din buffer, Acordări de memorie în așteptare
- CPU: % Timp procesor, Lungime cozi procesor
- Disc: Medie disc secunde/Citire și scriere, Lungime cozi disc
- SQL ServerCereri în lot/sec, Compilări/sec, Conexiuni utilizator
Rezumatul celor mai bune practici
- Stabilirea unor linii de bază în timpul operațiunilor normale
- Setați praguri de alertă inteligente pe baza valorilor de referință
- Revizuiți periodic datele de performanță
- Echilibrează cheltuielile generale de monitorizare cu granularitatea datelor
- Păstrați datele pe termen lung pentru analiza tendințelor
- Utilizați instrumentele adecvate pentru fiecare scenariu de monitorizare
16.2 Abordarea îmbunătățirii continue
SQL Server Monitorizarea performanței nu este o activitate singulară, ci un proces continuu care necesită o rafinare continuă.
Cicluri regulate de revizuire
- Zilnic: Verificați alertele și performanța actuală
- Săptămânal: Revizuirea tendințelor și identificarea problemelor emergente
- Lunar: Analizați tiparele pe termen lung și nevoile de capacitate
- Trimestrial: Actualizarea datelor de referință și revizuirea eficacității monitorizării
Menținerea la zi cu instrumentele
Mențineți instrumentele și tehnicile de monitorizare actualizate:
- Evaluați noile funcții de monitorizare în SQL Server actualizări
- Testați instrumentele terțe emergente
- Participați la traininguri și conferințe
- Participa la SQL Server forumuri comunitare
- Împărtășește cunoștințe cu membrii echipei
16.3 pași următori
aplica SQL Server monitorizarea sistematică a performanței:
Foaia de parcurs de implementare
- Săptămâna 1: Configurați Monitorul de performanță cu contoare esențiale
- Săptămâna 2: Creați seturi de colectoare de date pentru colectare automată
- Săptămâna 3: Stabilirea unor linii de bază în timpul operațiunilor normale
- Săptămâna 4: Configurați alertele pentru praguri critice
- Luna 2: Implementați instrumente suplimentare de monitorizare (DMV-uri, Evenimente Extinse)
- Luna 3: Dezvoltați tablouri de bord și rapoarte personalizate
- În curs de desfășurare: Rafinați monitorizarea pe baza experienței și a cerințelor în schimbare
Resurse suplimentare
Învățați în continuare despre SQL Server monitorizarea performanței prin intermediul documentației Microsoft, blogurilor comunității și practicii. Experimentați diferite instrumente și tehnici pentru a găsi ce funcționează cel mai bine pentru mediul dvs.
17. Întrebări frecvente (FAQ)
17.1 Care sunt cele mai importante SQL Server contoare de performanță de monitorizat?
Cel mai critic SQL Server Contorii de performanță includ:
- Memorie: Durata de viață a paginii (ar trebui să fie >300 de secunde) și Rata de accesare a memoriei cache a tamponului (ar trebui să fie >99%)
- CPU: % timp procesor (valori susținute <75%) și lungime cozii procesorului (ar trebui să fie <2 per nucleu)
- Disc: Medie disc secunde/Citire și scriere (ar trebui să fie <10-20ms) și lungime cozii de așteptare pe disc (ar trebui să fie <2 per disc)
- SQL ServerCereri batch/sec, Compilări SQL/sec și Acordări de memorie în așteptare (ar trebui să fie 0)
Aceste contoare oferă informații complete despre starea sistemului și ajută la identificarea rapidă a blocajelor.
17.2 Cât de des ar trebui să colectez date privind performanța?
Frecvența colectării depinde de obiectivele de monitorizare:
- Monitorizare de bază: La fiecare 1 minut (60 de secunde)
- Depanare activă: La fiecare 15-30 de secunde pentru perioade scurte de timp
- Tendință pe termen lung: La fiecare 5 minute
Evitați rularea continuă a colectării de date de înaltă frecvență, deoarece aceasta poate afecta performanța și poate genera un exces de date. Folosiți intervale mai lungi pentru monitorizarea de rutină și intervale mai scurte doar atunci când investigați probleme specifice.
17.3 Care este diferența dintre Monitorul de performanță și SQL Server Profiler?
Monitor de performanță și SQL Server Profiler servește unor scopuri diferite:
Monitor de performanță:
- Monitorizează sistemul și SQL Server contoare de performanță
- Urmărește utilizarea resurselor (CPU, memorie, disc)
- Costuri reduse, potrivite pentru monitorizare continuă
- Oferă valori agregate în timp
SQL Server profiler:
- Urme individuale SQL Server evenimente și interogări
- Capturează informații detaliate despre execuția interogărilor
- Costuri suplimentare mai mari, nu este recomandat pentru utilizare continuă
- Cel mai bun pentru depanarea problemelor specifice ale interogărilor
- Depreciat în favoarea Evenimentelor Extinse
Folosește Performance Monitor pentru monitorizarea generală a sistemului și Extended Events (nu Profiler) pentru analiză detaliată la nivel de interogare.
17.4 Poate avea impact Monitorul de performanță SQL Server performanţă?
Când este configurat corect, Monitorul de performanță are un impact minim asupra SQL Server performanță, de obicei sub 2% cheltuieli generale. Cu toate acestea, monitorizarea excesivă poate cauza probleme:
- Prea multe contoare cresc cheltuielile generale
- Intervale de eșantionare foarte scurte (sub 15 secunde) resurse de deformare
- Colectarea continuă de înaltă frecvență generează fișiere jurnal mari
Pentru a minimiza impactul:
- Monitorizați doar contoarele necesare
- Utilizați intervale de prelevare adecvate (60 de secunde pentru monitorizare de rutină)
- Stocarea jurnalelor pe unități separate de fișierele bazei de date
- Programați monitorizarea care necesită multe resurse în afara orelor de vârf
17.5 Cât timp ar trebui să păstrez datele de monitorizare a performanței?
Păstrarea depinde de nevoile dvs. de analiză și de capacitatea de stocare:
- Minim: 3 luni pentru depanarea problemelor recente
- Recomandat: 1-2 ani pentru planificarea capacității și analiza tendințelor
- Optim: Pe termen nelimitat, dacă stocarea permite, deoarece datele istorice devin mai valoroase în timp
Datele contorului de performanță se comprimă bine și ocupă relativ puțin spațiu. Luați în considerare arhivarea datelor mai vechi într-o memorie separată, în loc să le ștergeți. Multe organizații consideră că anii de date istorice se dovedesc neprețuiți pentru planificarea capacității și identificarea tendințelor pe termen lung.
17.6 Care sunt valorile prag bune pentru contorii cheie de performanță?
Valori prag recomandate pentru alertare:
- Acordări de memorie în așteptare: Alertă când > 0
- Durata de viață a paginii: Alertă când < 300 de secunde
- % Timp procesor: Alertă când > 80% timp de 5 minute
- Lungimea cozii procesorului: Alertă când > 2 pe nucleu
- Medie disc secunde/Citire sau scriere: Alertă când > 20 ms
- Lungimea cozii de disc: Alertă când > 2 pe disc
- Procese blocate: Alertă când > 5
Ajustați aceste praguri în funcție de datele de referință și de caracteristicile specifice ale sarcinii de lucru. Ceea ce este normal pentru un mediu poate indica probleme în altul.
17.7 Cum monitorizez SQL Server performanță de la distanță?
Telecomandă monitor SQL Server instanțe care utilizează aceste metode:
- Monitor de performanță: Specificați numele computerului la distanță atunci când adăugați contoare
- PowerShell: Utilizați parametrul -ComputerName cu Get-Counter
- DMV-uri: Conectați-vă la servere la distanță prin SSMS și interogați DMV-uri
- Instrumente terțe: Majoritatea instrumentelor de monitorizare acceptă monitorizarea serverului de la distanță
Asigurați-vă că regulile firewall permit traficul Performance Monitor și că aveți permisiunile corespunzătoare pe serverul la distanță. Pentru mai multe servere, luați în considerare implementarea monitorizării centralizate cu un server de monitorizare dedicat și o bază de date.
17.8 Care este cel mai bun instrument gratuit pentru SQL Server monitor de performanță?
Sunt disponibile mai multe instrumente gratuite excelente pentru monitorizare SQL Server performanţă:
- Monitorul de performanță Windows: Integrat, complet și fiabil
- Monitorul de activitate SSMS: Monitorizare în timp real, fără instalare suplimentară
- Evenimente extinse: Monitorizare ușoară a evenimentelor încorporată SQL Server
- sp_CineEsteActiv: Procedură stocată gratuită populară pentru monitorizarea detaliată a activității
- Administrator de baze de date: Instrument de monitorizare open-source cu funcții complete
- SQLWATCH: Open-source cu capacități de monitorizare aproape în timp real
Pentru majoritatea organizațiilor, Performance Monitor combinat cu instrumentele SSMS și sp_WhoIsActive oferă capacități excelente de monitorizare fără costuri suplimentare.
17.9 Cum export datele PerfMon pentru analiză?
Exportați datele Monitorului de performanță folosind aceste metode:
Export în format CSV:
- Deschideți Monitorul de performanță cu fișierul jurnal încărcat
- Faceți clic dreapta pe grafic și selectați Salvare date ca
- Alege Fișier text (delimitat prin virgulă) (.csv)
- Selectați locația și salvați
- Deschideți în Excel pentru analiză
Folosește comanda Relog:
relog input.blg -f csv -o output.csv
Acest utilitar din linia de comandă convertește fișierele jurnal binare (.blg) în format CSV pentru o analiză mai ușoară în aplicațiile de foi de calcul.
17.10 Când ar trebui să utilizez instrumente de monitorizare terțe în loc de opțiuni încorporate?
Luați în considerare instrumente terțe atunci când:
- Gestionarea unui număr mare de SQL Server instanțe (10+)
- Necesită monitorizare centralizată în mai multe centre de date
- Necesită funcții avansate precum analiză predictivă sau detectare a anomaliilor
- Dorința de alerte integrate cu sistemele de gestionare a incidentelor
- Solicitarea raportării conformității și a analizei istorice
- Lipsa resurselor DBA pentru a construi și întreține soluții personalizate
- Monitorizarea mediilor de baze de date eterogene (SQL Server, Oracle, MySQL etc.)
Instrumentele integrate funcționează bine pentru mediile mai mici sau atunci când aveți administratori de baze de date (DBA) calificați care pot dezvolta soluții de monitorizare personalizate. Instrumentele terțe oferă valoare prin economii de timp, funcții avansate și asistență profesională.
18. Resurse suplimentare
18.1 Documentație oficială
Microsoft oferă documentație extinsă pentru SQL Server monitor de performanță:
- SQL Server Documentația Monitorului de performanță: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Vizualizări de gestionare dinamică: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Evenimente extinse: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Magazin de interogări: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Reglarea și monitorizarea performanței: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Instrumente și descărcări recomandate
Instrumente esențiale pentru SQL Server monitor de performanță:
- Instrument PAL: https://github.com/clinthuffman/PAL
- sp_CineEsteActiv: http://whoisactive.com/
- Administrator de baze de date: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- Trusă de prim ajutor (Brent Ozar): https://www.brentozar.com/first-aid/
- SQL Server Studio de management: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
18.3 Resurse comunitare
Învață de la SQL Server comunitate:
- SQL Server Central: https://www.sqlservercentral.com/
- Blogul lui Brent Ozar: https://www.brentozar.com/blog/
- SQL Shack: https://www.sqlshack.com/
- Sfaturi MSSQL: https://www.mssqltips.com/
- Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
- Depășirea stivei SQL Server etichetă: https://stackoverflow.com/questions/tagged/sql-server
Aceste resurse oferă tutoriale, sfaturi de depanare și cele mai bune practici de la persoane cu experiență SQL Server profesioniști. Participarea la forumuri comunitare vă ajută să învățați din experiențele altora și să vă împărtășiți propriile cunoștințe.
Despre autor
Yuan Sheng este un administrator senior de baze de date (DBA) cu peste 10 ani de experiență în SQL Server medii de lucru și managementul bazelor de date la nivel de întreprindere. A rezolvat cu succes sute de scenarii de recuperare a bazelor de date în cadrul unor organizații din domeniul serviciilor financiare, al sănătății și al producției.
Yuan este specializat în SQL Server recuperarea bazei de date, soluții de înaltă disponibilitateși optimizarea performanței. Experiența sa practică vastă include gestionarea bazelor de date de mai mulți terabyți, implementarea Grupuri de disponibilitate permanentși dezvoltarea de strategii automate de backup și recuperare pentru sistemele critice ale afacerii.
Prin expertiza sa tehnică și abordarea practică, Yuan se concentrează pe crearea de ghiduri complete care ajută administratorii de baze de date și profesioniștii IT să rezolve probleme complexe. SQL Server provocări eficiente. El se menține la curent cu cele mai recente SQL Server versiunilor de software și tehnologiilor de baze de date în continuă evoluție ale Microsoft, testând periodic scenarii de recuperare pentru a se asigura că recomandările sale reflectă cele mai bune practici din lumea reală.
Ai întrebări despre SQL Server recuperare sau aveți nevoie de îndrumări suplimentare pentru depanarea bazei de date? Yuan vă urează bun venit pentru a vă ajuta. feedback și sugestii pentru îmbunătățirea acestor resurse tehnice.





























