Podijeli sada:
Pregled sadržaja sakriti

1. Uvod u SQL Server Performance Monitor

1.1 Što je SQL Server Monitor performansi?

SQL Server Monitor performansi je proces praćenja, analiziranja i upravljanja performansama i stanjem vašeg SQL Server baze podataka. Uključuje prikupljanje i interpretaciju podataka o različitim aspektima vašeg sustava baze podataka kako bi se osigurale optimalne performanse, spriječili problemi i održalo zdravlje baze podataka.

Praćenje performansi obuhvaća praćenje vremena izvršavanja upita, iskorištenosti resursa, performansi indeksa, blokiranja i zastoja te obrazaca rasta baze podataka. Ovaj kontinuirani nadzor pomaže administratorima da identificiraju potencijalne probleme prije nego što utječu na korisnike ili poslovne operacije.

1.2 Ključne prednosti praćenja performansi

Djelotvoran SQL Server Monitor performansi pruža nekoliko ključnih prednosti:

  • Proaktivno otkrivanje problema: Identificirajte i riješite potencijalne probleme prije nego što utječu na korisnike ili poslovne operacije
  • Optimizacija performansi: Utvrdite uska grla i neučinkovitosti kako biste poboljšali ukupne performanse baze podataka
  • Planiranje kapaciteta: Predvidite potrebe za resursima i planirajte budući rast na temelju povijesnih podataka
  • Sukladnost i sigurnost: Osigurati poštivanje regulatornih zahtjeva i otkriti sumnjive aktivnosti

1.3 Uobičajeni izazovi u performansama

Bez odgovarajućeg monitora performansi SQL baze podataka, organizacije se suočavaju s nekoliko rizika:

  • Neočekivani zastoj koji remeti poslovne operacije
  • Loše performanse aplikacije utječu na korisničko iskustvo
  • Gubitak ili oštećenje podataka
  • Neučinkovito korištenje resursa dovodi do nepotrebnogosts
  • Frustrirani korisnici i potencijalni gubitak prihoda

Prema IDC-ovoj studiji iz 2023. godine, 65% problema s performansama baze podataka proizlazi iz loših praksi praćenja ili optimizacije.

2. Razumijevanje programa Windows Performance Monitor (PerfMon)

2.1 Što je Windows Performance Monitor?

Nadzor performansi sustava Windows (PerfMon) je ugrađeni alat sustava Windows koji prati sistemske resurse i performanse aplikacija. SQL Server administratorima, PerfMon pruža neprocjenjiv uvid u operativni sustav i SQL Server metrike, što ga čini ključnim za sveobuhvatnu analizu performansi.

Monitor performansi sustava Windows (PerfMon)

PerfMon redovito mjeri statistiku performansi i sprema tu statistiku u datoteke za kasniju analizu. Administratori baza podataka mogu odabrati vremenski interval, format datoteke i koje statistike će pratiti. Alat nije SQL Server-specifičan—administratori sustava koriste ga za nadzor samog sustava Windows, sustava Exchange, datotečnih poslužitelja i bilo koje aplikacije koja može imati uska grla.

2.2 Pokretanje Monitora performansi

Performance Monitor možete pokrenuti na nekoliko načina:

  1. Kliknite početni plantipa PerfMon U polju za pretraživanje kliknite na "Performand Monitor" u rezultatima pretraživanja:
    Pretraživanje i starPerfMon iz okvira za pretraživanje sustava Windows.
  2. Press Windows + Rtipa PerfMon, i pritisnite ući
    Start PerfMon iz okvira za pokretanje sustava Windows.
  3. Dođite na Kontrolna ploča -> Sustav i sigurnost -> administrativni alati -> Performance Monitor
    StarPerfMon s Upravljačke ploče -> Sustav i sigurnost -> Administrativni alati -> Nadzor performansi

3. osnovni SQL Server Brojači performansi

3.1 Brojači performansi memorije

Brojači memorije su ključni za praćenje SQL Server performanse jer pokazuju ima li vaša baza podataka dovoljno memorijskih resursa.

Dostupni MBytes

Ovaj brojač prikazuje količinu fizičke memorije odmah dostupne za dodjelu. Trebala bi ostati prilično konstantna i idealno ne bi trebala pasti ispod 4096 MB. Niske vrijednosti mogu ukazivati ​​na to da SQL ServerPostavka maksimalne memorije ostavljena je na zadanoj vrijednosti ili nijeSQL Server aplikacije troše memoriju.

Očekivano trajanje stranice

Očekivano trajanje stranice mjeri koliko dugo (u sekundama) stranica ostaje u međuspremniku bez referenciranja. Normalna vrijednost je 300 sekundi ili više. Niže vrijednosti ukazuju na pritisak memorije i prekomjerno izmjenjivanje međuspremnika, što smanjuje učinkovitost predmemorije.

Omjer pogodaka predmemorije međuspremnika

Ovaj brojač pokazuje postotak zahtjeva za podacima na koje se odgovori korištenjem SQL međuspremnika (memorije) umjesto čitanja s diska. Obično dostiže ili prelazi 99%. Niže vrijednosti ukazuju na to da SQL Server treba više memorije ili se još uvijek zagrijava nakon ponovnog pokretanjatart.

Dodjela memorije na čekanju

Ovo pokazuje broj procesa koji čekaju memoriju unutar SQL ServerU normalnim uvjetima, ova vrijednost bi trebala biti konstantno 0. Veće vrijednosti ukazuju na nedovoljnu alokaciju memorije za SQL Server.

Tarusporedite memoriju poslužitelja s ukupnom memorijom poslužitelja

Target Server Memory označava idealnu količinu memorije SQL Server želi koristiti. Ukupna memorija poslužitelja pokazuje što SQL Server trenutno koristi. Omjer između tih vrijednosti trebao bi biti približno 1. Značajne razlike mogu ukazivati ​​na memorijski pritisak ili nedovoljnu raspoloživu memoriju.

3.2 Brojači performansi procesora

Brojači procesora pomažu u prepoznavanju uskih grla procesora i razumijevanju kako SQL Server koristi računalne resurse.

% vremena procesora

Ovo mjeri postotak proteklog vremena koje procesor provodi izvršavajući niti koje nisu u mirovanju. Na aktivnim poslužiteljima vrijednosti mogu porasti na 100%, ali dugotrajna upotreba iznad 70-75% obično ukazuje na probleme s performansama za korisnike. Nedostajući ili neadekvatni indeksi često uzrokuju veliku upotrebu CPU-a.

% Privilegirano vrijeme

Procesorsko vrijeme dijeli se na korisnički način rada i privilegirani (kernel) način rada. Sav pristup disku i ulazno/izlazni operaciji odvijaju se u kernel načinu rada. Ako ovaj brojač prelazi 25%, sustav vjerojatno izvodi previše ulazno/izlaznih operacija. Normalne vrijednosti kreću se između 5% i 10%.

Duljina reda procesora

Ovaj brojač prikazuje niti koje čekaju CPU resurse. Vrijednosti su stalno iznad 1 (osim tijekom SQL Server kompresija sigurnosne kopije) ukazuju na opterećenje CPU-a. To često znači da su na SQL Server stroj, što krši najbolje prakse.

Prebacivanja konteksta/sek

Ovo mjeri koliko često procesor prebacuje između niti. Prekomjerno prebacivanje konteksta može utjecati na performanse i ukazuje na veliko opterećenje sustava.

3.3 Brojači performansi ulazno/izlaznih operacija diska

Brojači diskova su ključni za praćenje performansi SQL-a jer I/O operacije s diska često postaju glavno usko grlo u sustavima baza podataka.

% Vrijeme diska

Ovo bilježi postotak vremena u kojem je disk bio zauzet operacijama čitanja/pisanja. Vrijednosti koje su stalno iznad 85% ukazuju na usko grlo u ulazno/izlaznim operacijama. Budući da je disk puno sporiji od memorije, smanjenje ove metrike poboljšava performanse.

Prosječno vrijeme čitanja na disku (s) i prosječno vrijeme pisanja na disku (s)

Ovi brojači mjere prosječno vrijeme (u sekundama) za operacije čitanja i pisanja. Ako prosječne vrijednosti premašuju 10-20 ms, disku treba predugo za obradu podataka. Pogoni za zapisnike transakcija zahtijevaju posebno brze performanse pisanja.

Duljina reda diska

Ovo prikazuje neriješene zahtjeve za čitanje/pisanje na disk. Vrijednosti koje su stalno veće od 2 (ili 2 po disku za RAID polja) ukazuju na to da disk ne može pratiti I/O zahtjeve.

Disk bajtova/sek

Ovo prati brzinu prijenosa podataka na/s diska. Ako to premaši nazivni kapacitet diska, podaci počinju zaostajati, što je naznačeno povećanjem duljine reda čekanja diska.

Prijenosi diska/sek

Ovo prati broj operacija čitanja/pisanja izvršenih na disku. SQL Server Pristup podacima je obično nasumičan, što je sporije zbog pomicanja glave pogona. Osigurajte da ova vrijednost ostane ispod maksimalne brzine vašeg diskovnog pogona (obično 100/s za standardne pogone).

3.4 SQL Server Specifični brojači

3.4.1 Brojači upravitelja međuspremnika

Nadzor brojača Upravitelja međuspremnika SQL Serveroperacije s međuspremnikom memorije:

  • Čitanja stranice/sek: Kumulativni broj čitanja fizičkih stranica baze podataka
  • Pisanja stranice/sek: Kumulativni broj zapisivanja fizičkih stranica baze podataka
  • Lijeno pisanje/sek: Broj međuspremnika koje je lazy writer napisao za oslobađanje memorije
  • Stranice kontrolne točke/sek: Stranice ispražnjene kontrolnom točkom ili drugim operacijama koje zahtijevaju ispražnjenje svih prljavih stranica

3.4.2 Brojači SQL statistike

Ovi brojači pružaju uvid u SQL Server obrada upita:

  • Grupni zahtjevi/sek: Broj SQL serijskih zahtjeva koje je poslužitelj primio. Ovo služi kao mjerilo za aktivnost poslužitelja.
  • SQL kompilacije/sek: Broj SQL kompilacija. Trebao bi biti 10% ili manje od ukupnog broja zahtjeva za pakete/sek.
  • SQL rekompilacije/s: Broj SQL ponovnih kompilacija. Također bi trebao biti 10% ili manje od ukupnog broja zahtjeva u serijama/sek.

3.4.3 Opći statistički brojači

  • Korisničke veze: Broj korisnika spojenih na sustav. Koristi se kao referentna vrijednost za praćenje rasta veze tijekom vremena.
  • Blokirani procesi: Trenutni broj blokiranih procesa. Idealno bi bilo da bude 0

3.4.4 Brojači upravitelja memorije

  • Dodjele memorije na čekanju: Ukupan broj procesa koji čekaju na dodjelu memorije za radni prostor. Idealno bi trebao biti 0.

4. Postavljanje monitora performansi za SQL Server(Windows Vista / Server 2008 i noviji)

Prije svega, moramo stvoriti kontejner za lakše upravljanje brojačima:

  • Za Windows Vista / Server 2008 i novije verzije, u ovom odjeljku možete stvoriti skupove kolekcionara podataka.
  • Za Windows XP / Server 2003 i starije verzije, možete stvoriti zapisnike brojača u sljedeći odjeljak.

4.1 Što su skupovi za prikupljanje podataka?

Skupovi za prikupljanje podataka organiziraju brojače performansi, podatke o praćenju događaja i informacije o konfiguraciji sustava u jednu jedinicu za prikupljanje. Pružaju veću fleksibilnost od jednostavnih zapisnika brojača i omogućuju automatizirano, planirano prikupljanje podataka za sveobuhvatno praćenje performansi SQL baze podataka.

4.2 Izrada skupa kolekcionara podataka

Izradite prilagođeni skup prikupljača podataka za praćenje SQL Server brojači performansi:

  1. Otvorite Monitor performansi
  2. Proširiti Setovi za prikupljanje podataka
  3. Desnom tipkom miša Korisnik definiran
  4. odabrati Novo -> Set za prikupljanje podataka
    Stvorite novi skup kolekcionara podataka u PerfMonu
  5. Unesite opisni naziv (npr. „SQL Server Metrike performansi")
  6. odabrati Stvori ručno (napredno)
    Postavite naziv opisa za skup prikupljača podataka
  7. Kliknite Sljedeći
  8. Provjeriti Izradi zapisnike podataka -> Brojač performansi
    Odaberite Stvori zapisnike podataka -> Brojač performansi u čarobnjaku Stvori novi skup kolekcionara podataka.
  9. Kliknite Sljedeći
  10. Kliknite dodati za odabir brojača
  11. dodati željeni SQL Server i sistemski brojači.
    Dodajte brojače performansi novom skupu kolekcionara podataka.
  12. Postaviti Interval uzorka
    • Za rutinsko praćenje koristite 1 minutu (60 sekundi)
    • Za aktivno rješavanje problema koristite 15-30 sekundi
    • Izbjegavajte dugotrajno izvođenje visokofrekventnih snimanja jer mogu utjecati na performanse i generirati previše podataka.

    Postavite interval uzorkovanja u novom čarobnjaku za skupove kolekcionara podataka.

  13. Kliknite Sljedeći
  14. Odaberite lokaciju za spremanje zapisnika
    Postavite lokaciju za spremanje podataka o performansama u novom čarobnjaku za skup kolekcionara podataka.
  15. Kliknite završiti, bit će kreiran novi skup kolekcionara podataka.
  16. Prema zadanim postavkama, novi skup prikupljača podataka će NE biti starautomatski se pokreće. Morate ga pronaći na lijevoj ploči, pod Izvođenje -> Setovi za prikupljanje podataka -> Korisnik definiran -> Vaš sakupljač podataka, kliknite ga desnom tipkom miša i odaberite početni plan
    Starnovi skup kolekcionara podataka u PerfMonu.

4.3 Ključni brojači koje treba dodati

  • Memorija -> Dostupni MB
  • Fizički disk -> Prosječno vrijeme čitanja diska u sekundama (sve instance osim _Ukupno)
  • Fizički disk -> Prosječno vrijeme pisanja na disku (sve instance osim _Ukupno)
  • Fizički disk -> Čitanja diska/sek (sve instance osim _Total)
  • Fizički disk -> Zapisivanja na disk/s (sve instance osim _Total)
  • Procesor -> % Vrijeme procesora (sve instance osim _Total)
  • SQLServer: Opća statistika -> Korisničke veze
  • SQLServer: Upravitelj memorije -> Memorijske dodjele na čekanju
  • SQLServer: SQL statistika -> Grupni zahtjevi/sek
  • SQLServer: SQL statistika -> SQL kompilacije/sek
  • SQLServer: SQL statistika -> SQL rekompilacije/sek
  • Sustav -> Duljina reda procesora

4.4 Postavljanje uvjeta zaustavljanja

Konfigurirajte uvjete zaustavljanja kako biste spriječili neograničen rast podataka:

  1. Nakon što stvorite skup za prikupljanje podataka, kliknite ga desnom tipkom miša i odaberite Nekretnine
  2. kliknite Stanje zaustavljanja kartica
  3. Omogući Ukupno trajanje
  4. Postavi trajanje na 1 dan (24 sata)
  5. Kliknite OK spasiti

Postavite uvjet zaustavljanja za skup prikupljača podataka

To osigurava da zapisnik ne postane prevelik i da se automatski ponovno generira.tarts ako je zakazano.

4.5 Raspoređivanje prikupljanja podataka

Automatizirajte prikupljanje podataka kako biste osigurali dosljedno praćenje:

  1. Desnom tipkom miša kliknite svoj skup za prikupljanje podataka i odaberite Nekretnine
  2. kliknite raspored kartica
  3. Kliknite dodati za izradu novog rasporeda
  4. Konfigurirajte stardatum i vrijeme
  5. Postavite obrazac ponavljanja (npr. svakodnevno)
  6. Kliknite OK za spremanje rasporeda

Postavite raspored za skup prikupljača podataka

Za automatsketartup, konfigurirajte skup skupa skupa podataka na start kada se poslužitelj pokrene stvaranjem kaotartup okidač u Windows Planeru zadataka.

5. Postavljanje monitora performansi za SQL Server(Windows XP / Server 2003 i stariji)

Za Windows XP / Server 2003 i starije verzije možete stvoriti zapisnike brojača koji vam omogućuju odabir skupa brojača performansi i njihovo periodično zapisivanje u datoteku.

5.1 Izrada zapisnika brojača

Slijedite ove korake za izradu novog zapisnika brojača:

  1. Otvorite Monitor performansi
  2. Proširiti Izvedbeni Evidencije i upozorenja u lijevom oknu
  3. Desnom tipkom miša Zapisnici brojača
  4. odabrati Nove postavke zapisnika
  5. Nazovite zapisnik imenom vašeg poslužitelja baze podataka (npr. „ProductionSQL01“)
  6. Kliknite OK za početak konfiguracije

Izrada zasebnih zapisnika brojača za svaki poslužitelj omogućuje vam testiranje performansi na pojedinačnim poslužiteljima bez istovremenog prikupljanja podataka za sve poslužitelje.

5.2 Dodavanje brojača performansi

Nakon što stvorite zapisnik brojača, dodajte specifične brojače performansi koje želite pratiti:

  1. kliknite Dodaj brojače dugme
  2. Promijenite naziv računala tako da ukazuje na vaše SQL Server primjer
  3. Press Tabulator za učitavanje dostupnih objekata performansi
  4. Odaberite objekt performansi iz padajućeg izbornika (npr. memorija)
  5. Odaberite određene brojače iz popis
  6. Odaberite instance ako je primjenjivocable (npr. pojedinačni procesori ili diskovi)
  7. Kliknite dodati uključiti brojač
  8. Ponovite za sve željene brojače
  9. Kliknite Zatvori kada završi

5.3 Konfiguriranje intervala uzorkovanja

Interval uzorkovanja određuje koliko često Performance Monitor prikuplja podatke. Konfigurirajte odgovarajuće intervale na temelju vaših potreba praćenja:

  1. U svojstvima zapisnika brojača pronađite Uzorak podataka svakih
  2. Postavite interval (zadano je 15 sekundi)
  3. Za praćenje početnih vrijednosti, koristite intervale od 1 minute za dnevno prikupljanje
  4. Za rješavanje problema koristite intervale od 15-30 sekundi za kratke rafale
  5. Kliknite OK primjeniti

Imajte na umu da manji intervali generiraju više podataka, koje je teže prikazati i analizirati. Veći intervali mogu propustiti važne skokove. Uravnotežite granularnost podataka sa zahtjevima za pohranu i analizu.

5.4 Konfiguriranje datoteka zapisnika

Ispravna konfiguracija datoteke zapisnika osigurava učinkovito i pristupačno pohranjivanje podataka:

  1. kliknite Log Files kartica u svojstvima zapisnika brojača
  2. Promijeni vrstu datoteke zapisnika u Tekstualna datoteka (razdvojena zarezom) za jednostavan uvoz iz Excela
  3. Kliknite konfigurirati
  4. Postavite putanju datoteke na namjensku lokaciju (npr. dijeljenu mapu PerformanceLogs)
  5. Kliknite OK potvrditi

Koristite mrežno dostupno dijeljenje za pohranu zapisnika kako biste mogli daljinski pristupiti datotekama i dijeliti ih s drugim korisnicima.

5.5 Postavljanje vjerodajnica

Konfigurirajte odgovarajuće vjerodajnice kako bi Monitor performansi mogao pristupiti udaljenom SQL Server instance:

  1. U svojstvima zapisnika brojača pronađite Trčati kao
  2. Unesite korisničko ime svoje domene u formatu: DOMENA\korisničko ime
  3. Kliknite Postavi lozinku
  4. Unesite i potvrdite svoju lozinku
  5. Kliknite OK spasiti

To omogućuje PerfMon usluzi prikupljanje statistike koristeći dozvole vaše domene umjesto vlastitih vjerodajnica.

6. Analiza podataka monitora performansi

6.1 Pregledavanje datoteka zapisnika u Monitoru performansi

Monitor performansi može prikazati povijesne podatke iz spremljenih datoteka zapisnika:

  1. Otvorite Monitor performansi
  2. U lijevom oknu kliknite Alati za nadzor -> Performance Monitor.
  3. Desni klik bilo gdje u području grafa
  4. odabrati Nekretnine
    Otvorite svojstva u PerfMonu klikom desne tipke miša bilo gdje u području grafa.
  5. kliknite izvor kartica
  6. odabrati Dnevnik datoteka Radio gumb
  7. Kliknite dodati
  8. Idite do datoteke zapisnika (.blg ili .csv)
  9. Odaberite datoteku i kliknite Otvoren
    Postavite datoteku zapisnika kao izvor grafike u PerfMonu.
  10. Koristite Vremenski raspon klizač za odabir razdoblja koje želite analizirati
  11. Kliknite OK za zatvaranje dijaloga Svojstva
  12. Kliknite zelenu ikonu plusa za dodavanje brojača iz datoteke zapisnika
    Kliknite zelenu ikonu plusa za dodavanje brojača iz datoteke zapisnika u PerfMonu.
  13. Odaberite željene brojače za prikaz
    Dodajte željene brojače grafici u PerfMonu.
  14. Kliknite OK

Grafikon će sada prikazivati ​​povijesne podatke iz datoteke zapisnika. Pomoću klizača Vremenski raspon u Svojstvima suzite određena vremenska razdoblja za detaljnu analizu.

6.2 Izvoz podataka u Excel

Excel pruža moćne mogućnosti analize za podatke brojača performansi:

  1. Otvorite Monitor performansi s učitanom datotekom zapisnika
  2. Desni klik bilo gdje u području grafa
  3. odabrati Spremi podatke kao
  4. Odaberite lokaciju za datoteku
  5. odabrati Tekstualna datoteka (razdvojena zarezom) (.csv) s padajućeg izbornika
  6. Kliknite UŠTEDI
  7. Otvorite CSV datoteku u Excelu

Izvezite podatke u datoteku u PerfMonu.

Formatirajte izvezene podatke za bolju analizu:

  1. Izbrišite poluprazan redak 2 i očistite ćeliju A1
  2. Formatirajte stupac A kao datum/vrijeme
  3. Formatirajte numeričke stupce s nula decimalnih mjesta i razdjelnikom tisućica
  4. Pronađi i zamijeni nazive poslužitelja u zaglavljima (npr. zamijeni "\\NAMEPOSLUŽITELJA" praznim poljem)
  5. Očistite nazive objekata u zaglavljima (npr. "Memorija", "Fizički disk", "Procesor")
  6. Smanjite veličinu fonta zaglavlja na 8 bodova radi bolje vidljivosti

6.3 Tumačenje vrijednosti brojača

6.3.1 Analiza brojača memorije

Prilikom analize brojača memorije obratite pozornost na ove pokazatelje:

  • Dostupni MB: Trebao bi stalno ostati iznad 4096 MB
  • Očekivano trajanje stranice: Vrijednosti iznad 300 sekundi ukazuju na zdravo pamćenje. Niže vrijednosti ukazuju na pritisak pamćenja.
  • Omjer pogodaka predmemorije međuspremnika: Trebalo bi dostići ili premašiti 99%. Niže vrijednosti označavaju prekomjerno čitanje diska
  • Dodjele memorije na čekanju: Uvijek bi trebao biti 0. Bilo koja pozitivna vrijednost označava memorijutarvation

6.3.2 Analiza brojača CPU-a

Pokazatelji performansi CPU-a uključuju:

  • % Vrijeme procesora: Dugotrajna upotreba iznad 75% ukazuje na probleme s performansama. Skokovi do 100% su normalni, ali ne bi trebali potrajati.
  • Duljina reda procesora: Vrijednosti iznad 1 označavaju opterećenje CPU-a. Provjerite Upravitelj zadataka kako biste utvrdili koji procesi troše CPU.
  • % Privilegirano vrijeme: Trebao bi ostati između 5-10%. Vrijednosti iznad 25% ukazuju na prekomjeran broj I/O operacija.

6.3.3 Analiza brojača diska

Pragovi performansi diska:

  • Prosječno vrijeme na disku (s)/čitanje i pisanje: Trebalo bi ostati ispod 10-20 ms. Veće vrijednosti ukazuju na spore podsustave diska.
  • Duljina reda diska: Vrijednosti koje su stalno iznad 2 (ili 2 po disku u RAID-u) ukazuju na uska grla u ulazno/izlaznim operacijama.
  • % Vrijeme diska: Trajne vrijednosti iznad 85% ukazuju na zasićenost diska

6.4 Korištenje formula i statistike

Dodajte statističke formule u Excel za brzu analizu:

  1. Umetnite 7 praznih redaka na vrh proračunske tablice
  2. Dodajte oznake u stupac A: Prosjek, Medijan, Min, Maks, Standardno odstupanje
  3. U ćeliju B2 unesite: =AVERAGE(B9:B100) (prilagodite B100 na zadnji redak s podacima)
  4. U ćeliju B3 unesite: =MEDIAN(B9:B100)
  5. U ćeliju B4 unesite: =MIN(B9:B100)
  6. U ćeliju B5 unesite: =MAX(B9:B100)
  7. U ćeliju B6 unesite: =STDEV(B9:B100)
  8. Kopiraj formule u sve stupce brojača
  9. Označite ćeliju B9 i pritisnite Alt+W+F+Enter za zamrzavanje okna

Ove statistike pomažu u prepoznavanju trendova, odstupanja i normalnih operativnih raspona za svaki brojač.

7. Alat za analizu performansi za zapisnike (PAL)

7.1 Uvod u PAL

Analiza performansi za zapisnike (PAL) je besplatni alat koji je razvio Clint Huffman, a koji analizira zapisnike Monitora performansi i generira HTML izvješća s analizom pragova. PAL uspoređuje vaše podatke o performansama s poznatim pragovima i pruža detaljne preporuke za SQL Server optimizacija performansi.

Preuzmite PAL iz GitHub repozitorija: https://github.com/clinthuffman/PAL vanjska poveznica

7.2 Postavljanje PAL-a

Instalirajte PAL slijedeći ove korake:

  1. Preuzmite PAL instalacijsku datoteku s GitHuba
  2. Pokrenite instalacijski program
  3. Kliknite Sljedeći na početnom zaslonu
  4. Pregledajte i prihvatite instalacijski direktorij
  5. Kliknite Sljedeći nastaviti
  6. Kliknite Instalirati za početak instalacije
  7. Pričekajte da se instalacija dovrši
  8. Kliknite završiti

7.3 Obrada datoteka zapisnika s PAL-om

Analizirajte zapisnike Performance Monitora pomoću PAL-a:

  1. Pokreni PAL s S-atart izbornik ili instalacijski direktorij
  2. kliknite Zapisnik brojača kartica
  3. Kliknite Pretraga za odabir vaše .blg datoteke
  4. Idite do datoteke zapisnika vašeg Monitora performansi
  5. Kliknite Otvoren
  6. kliknite Datoteka praga kartica
  7. Odaberite datoteku praga iz padajućeg izbornika (npr. "SQL Server 2016” )
  8. kliknite Pitanja kartica
  9. Odgovorite na pitanja o konfiguraciji vašeg sustava
  10. Navedite je li vaš SQL Server je OLTP ili skladište podataka
  11. Unesite ukupnu dostupnu RAM memoriju
  12. kliknite Izlazne opcije kartica
  13. Odaberite izlazni direktorij za HTML izvješće
  14. Provjeriti HTML izlazni format
  15. kliknite Izvršiti kartica
  16. Pregledajte svoje odabire
  17. Provjeriti Starizvršenje sada
  18. Kliknite završiti

7.4 Analiza PAL izvješća

Nakon što PAL završi analizu, generira HTML izvješće koje sadrži:

  • Sažetak problema s performansama
  • Detaljna analiza brojača s grafikonima
  • Prekoračenja praga istaknuta su bojom
  • Specifične preporuke za svaki problem
  • Povijesni trendovi i obrasci

Izvješće koristi kodiranje bojama za označavanje ozbiljnosti: crvena za kritične probleme, žuta za upozorenja i zelena za ispravne metrike. Pregledajte svaki odjeljak kako biste razumjeli uska grla u performansama i slijedite PAL-ove preporuke za optimizaciju.

8. Alternativa SQL Server Alati za nadzor

8.1 Ugrađeni SQL Server Alati

8.1.1 SQL Server Aktivnost Monitor

SQL Server Aktivnost Monitor prikazuje informacije u stvarnom vremenu o SQL Server procesi i performanse:

  1. Otvoren SQL Server Management Studio (SSMS) i povezivanje s instancom vašeg poslužitelja
  2. Desnom tipkom miša kliknite naziv poslužitelja u Object Exploreru
  3. odabrati Aktivnost Monitor
    Start Monitor aktivnosti u SQL Server Studio za upravljanje.

Monitor aktivnosti prikazuje procese, čekanja resursa, ulazno/izlazne operacije datoteka i nedavne skupe upite. Pruža brz uvid u trenutnu aktivnost baze podataka, ali ne pohranjuje povijesne podatke.

Monitor aktivnosti u SQL Server

8.1.2 SQL Server Nadzorna ploča performansi

SQL Server Management Studio uključuje ugrađena izvješća o performansama:

  1. In SQL Server Management Studio (SSMS), desnom tipkom miša kliknite SQL Server instanca u Object Exploreru
  2. odabrati Izvješća -> Standardna izvješća
  3. Odaberite između dostupnih izvješća kao što su Nadzorna ploča performansi
    Otvori nadzornu ploču performansi u SQL Server Studio za upravljanje.

Nadzorna ploča performansi pruža vizualni uvid u SQL Server performanse instance, uključujući iskorištenost CPU-a sustava, trenutne zahtjeve na čekanju i metrike performansi. Pristupite im putem izbornika Standardna izvješća.

Nadzorna ploča performansi u SQL Server Studio za upravljanje

8.1.3 SQL Server Profiler

SQL Server Profiler hvata i analizira SQL Server događaji kao što su izvršavanje upita, transakcijske operacije i aktivnosti prijave.

Za start SQL Server profiler:

  1. In SQL Server Management Studio, kliknite Alati -> SQL Server Profiler
    Start SQL Server Profiler u SQL Server Studio za upravljanje.

Profiler stvara značajno opterećenje performansi, stoga ga koristite razborito i po mogućnosti izvan vršnih sati. Za most scenariji, prošireni događaji pružaju bolje performanse s manjim utjecajem.

SQL Server Profiler

8.1.4 Prošireni događaji

Prošireni događaji je lagani sustav za praćenje performansi ugrađen u SQL Server. Zamjenjuje SQL Server Profiler s boljim performansama i nižim troškovima.

Ključne značajke uključuju:

  • Detaljno praćenje specifičnih događaja
  • Minimalni utjecaj na performanse
  • Prilagodljive sesije događaja
  • Integracija sa SSMS-om i drugim alatima
  • Podrška za složeno filtriranje i agregaciju

Stvaranje proširenih sesija događaja putem SSMS-a:

  1. In Istraživač objekata, proširite svoj poslužitelj i idite na Upravljanje -> Prošireni događaji -> Sesije
  2. Desnom tipkom miša kliknite sjednice I odaberite Čarobnjak za novu sesiju
    Starnova sesija proširenih događaja u SQL Server Studio za upravljanje.
  3. Slijedite upute za starnova sesija.

8.1.5 Dinamički upravljački prikazi (DMV)

DMV-ovi otkrivaju detaljne informacije o stanju poslužitelja za praćenje zdravlja, dijagnosticiranje problema i podešavanje performansi. Ključni DMV-ovi uključuju:

  • sys.dm_exec_query_stats: Statistika performansi upita
  • sys.dm_os_wait_stats: Vrste čekanja koje utječu na performanse poslužitelja
  • sys.dm_os_performance_counters: SQL Server podaci brojača performansi
  • sys.dm_exec_requests: Trenutno izvršavaju zahtjeve
  • sys.dm_exec_sessions: Aktivne korisničke sesije

Pošaljite upite za ove prikaze pomoću T-SQL-a kako biste pristupili podacima o performansama u stvarnom vremenu i povijesnim metrikama.

Osnovna upotreba

-- 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 Rješenja za nadzor trećih strana

Redgate SQL Monitor

Redgate SQL Monitor specijaliziran je za praćenje SQL Server i okruženja Azure SQL baze podataka. Pruža praćenje cijelog imanja, prilagodljiva upozorenja i nadzorne ploče, detaljne mogućnosti izvješćivanja i integraciju s drugim Redgate alatima.

Redgate SQL Server Praćenje

SolarWinds SQL Server Alat za praćenje

SolarWinds SQL Server Alat za nadzor, također poznat kao SQL Sentry, dizajniran je za dijagnosticiranje, rješavanje i sprječavanje ozbiljnih problema s performansama SQL Server.

SolarWinds SQL Server Alat za praćenje

IDERA-e SQL Server Alat za praćenje performansi

IDERA SQL dijagnostikaostic Manager je moćan SQL Server alat za praćenje performansi dizajniran za pomoć pri proaktivnom praćenju performansi, dijagostika i podešavanje.

IDERA-e SQL Server Alat za praćenje performansi

SQL nadzor upravitelja aplikacija

Applications Manager nudi Microsoft SQL Server Alat za praćenje koji pruža korisna IT rješenja. Osmišljen je za nadgledanje performansi SQL baza podataka, dok istovremeno identificira greške i rješava probleme koji bi mogli dovesti do zastoja u radu organizacije.

Nadgledanje SQL-a upravitelja aplikacija

8.3 Alati za nadzor otvorenog koda

DBA Dash

DBA Dash je besplatni alat za praćenje otvorenog koda koji pruža uvid u SQL Server zdravlje, performanse i aktivnost. Posebno je koristan za mala i srednja okruženja i uključuje dnevne DBA provjere, praćenje performansi i praćenje konfiguracije.

SQLWATCH

SQLWATCH nudi decentralizirano, gotovo u stvarnom vremenu SQL Server praćenje s granularnošću od 5 sekundi za hvatanje skokova opterećenja. Podržava Grafanu za nadzorne ploče u stvarnom vremenu i Power BI za dubinsku analizu. Alat pruža opsežne mogućnosti konfiguracije, nulte zahtjeve za održavanjem i neograničenu skalabilnost.

Opserver

Razvijen od strane Stack Exchangea, Opserver prati više sustava, uključujući SQL Server, Redis i Elasticsearch. Pruža prikaz "svih poslužitelja" za statistiku CPU-a, memorije, mreže i hardvera u vašoj infrastrukturi.

sp_TkoJeAktivan

sp_WhoIsActive je sveobuhvatna pohranjena procedura za praćenje aktivnosti koju je stvorio Adam Machanic. Radi sa svim SQL Server verzije od 2005. do trenutnih izdanja i široko se koristi od strane SQL Server DBA-ovi za praćenje aktivnosti u stvarnom vremenu.

Za korištenje sp_WhoIsActive, preuzmite ga s http://whoisactive.com/, instalirajte ga u svoju bazu podataka i izvršite:

EXEC sp_WhoIsActive

Postupak prikazuje trenutno izvršavane upite, informacije o čekanju, detalje blokiranja i potrošnju resursa.

9. Najbolji primjeri iz prakse za SQL Server Performance Monitor

9.1 Utvrđivanje osnovnih vrijednosti performansi

Osnovne vrijednosti performansi uspostavljaju normalne operativne parametre za vaše SQL Server okruženje. Bez osnovnih vrijednosti ne možete utvrditi ukazuju li trenutne metrike na probleme ili predstavljaju tipično ponašanje.

Izradite osnovne linije pomoću:

  1. Prikupljanje podataka o performansama tijekom normalnog rada u trajanju od najmanje jednog tjedna
  2. Prikupljanje metrika tijekom vršnih i izvanvršnih sati
  3. Dokumentiranje tipičnih vrijednosti za brojače ključeva
  4. Bilježenje sezonskih varijacija ako je primjenjivocable
  5. Pohranjivanje osnovnih podataka za usporedbu s budućim metrikama

Ažurirajte osnovne vrijednosti tromjesečno ili nakon značajnih promjena infrastrukture, ažuriranja aplikacija ili izmjena baze podataka.

9.2 Postavljanje odgovarajućih pragova upozorenja

Konfigurirajte inteligentne pragove kako biste primali značajna upozorenja bez preopterećenja obavijestima:

  • Memorijski grantovi na čekanju > 0 označava pritisak na memoriju
  • Duljina reda čekanja procesora > 2 po jezgri ukazuje na usko grlo procesora
  • Vrijeme čitanja ili pisanja na disku > 20 ms ukazuje na spor ulazno/izlazni signal
  • Blokirani procesi > 5 signala problema s natjecanjem
  • Očekivano trajanje stranice < 300 sekundi ukazuje na pritisak memorije

Prilagodite pragove na temelju osnovnih podataka i specifičnih karakteristika radnog opterećenja. Koristite prilagodljive pragove koji uzimaju u obzir normalne varijacije u vašem okruženju.

9.3 Redoviti pregled i analiza podataka

Zakažite redovite preglede učinka kako biste identificirali trendove i probleme koji se pojavljuju:

  • Dnevno: Pregledajte opće metrike i nedavna upozorenja
  • Tjedno: Provedite dubinsku analizu trendova performansi
  • Mjesečno: Generirajte sveobuhvatna izvješća i uspoređujte ih s osnovnim vrijednostima
  • Tromjesečno: Pregled planiranja kapaciteta i dugoročnih trendova

Dokumentirajte nalaze i pratite poboljšanja performansi tijekom vremena.

9.4 Troškovi praćenja uravnoteženja

Samo praćenje troši resurse, stoga uravnotežite prikupljanje podataka s utjecajem na performanse:

  • Koristite intervale od 30-60 sekundi za kontinuirano praćenje
  • Za aktivno rješavanje problema koristite samo intervale od 15 sekundi
  • Ograničite trajanje skupa podataka za prikupljanje podataka kako biste izbjegli prekomjernu količinu podataka
  • Pohrani zapisnike na zasebne diskove od datoteka baze podataka
  • Arhivirajte stare podatke o performansama kako biste održali upravljive veličine datoteka

Monitor performansi dodaje minimalno opterećenje kada je pravilno konfiguriran, obično ispod 2% sistemskih resursa.

9.5 Dugoročno čuvanje podataka

Zadržite podatke o učinku za smislenu analizu trendova i planiranje kapaciteta:

  • Čuvajte podatke o performansama za najmanje 1-2 godine
  • Arhivirajte podatke u zasebnu pohranu nakon 3-6 mjeseci
  • Komprimirajte starije datoteke zapisnika radi uštede prostora
  • Dokumentirajte sve značajne događaje ili promjene koje utječu na performanse

S obzirom na relativno malu veličinu podataka brojača performansi, njihovo neograničeno čuvanje često je izvedivo i vrijedno za dugoročnu analizu.

9.6 Integracija s DevOps praksama

Uključite praćenje performansi baze podataka u CI/CD cjevovode:

  • Uključite metrike performansi baze podataka u validaciju implementacije
  • Automatizirajte testiranje performansi za nova izdanja
  • Provjerite da promjene koda ne utječu negativno na performanse
  • Izradite mjerila performansi za svako izdanje
  • Integrirajte upozorenja o nadzoru sa sustavima za upravljanje incidentima

10. Rješavanje uobičajenih problema s performansama

10.1 Identificiranje uskih grla CPU-a

Uska grla CPU-a manifestiraju se kao sporo vrijeme odgovora na upite i visoka iskorištenost procesora. Pomoću ovih koraka dijagnosticirajte probleme s CPU-om:

  1. Provjerite brojač duljine reda čekanja procesora. Vrijednosti iznad 2 po jezgri ukazuju na opterećenje procesora.
  2. Pregledajte postotak procesorskog vremena. Trajne vrijednosti iznad 75% ukazuju na usko grlo procesora.
  3. Udaljena radna površina za SQL Server
  4. Otvori Upravitelj zadataka (Ctrl+Shift+Esc)
  5. kliknite Procesira kartica
  6. Provjeriti Prikaži procese svih korisnika
  7. kliknite CPU zaglavlje stupca za sortiranje prema korištenju CPU-a
  8. Identificirajte koji procesi troše CPU resurse

Ako ne-SQL Server Aplikacije troše značajno CPU, uklonite ih s poslužitelja baze podataka. Ako sqlservr.exe koristi puno CPU-a, istražite to pomoću ovih metoda:

  • Provjerite SQL kompilacije/sek i SQL ponovne kompilacije/sek. Vrijednosti iznad 10% zahtjeva za paketima/sek ukazuju na prekomjernu kompilaciju.
  • Upit sys.dm_exec_query_stats za identifikaciju upita koji intenzivno koriste CPU
  • Pregledajte planove izvršenja za nedostajuće indekse ili neučinkovite operacije
  • Razmislite o dodavanju indeksa kako biste smanjili skeniranje tablica

10.2 Dijagnosticiranje problema s pamćenjem

Problemi s pamćenjem značajno utječu SQL Server performanse. Dijagnosticirajte probleme s pamćenjem pomoću ovih pokazatelja:

Dostupne kapi memorije

Ako dostupni MB-ovi stalno padaju ispod 100 MB, operativni sustav se suočava s nedostatkom memorije.tarvacija. Windows se može pomicati prema van SQL Server memorije na disk, što uzrokuje smanjenje performansi.

Nizak očekivani životni vijek stranice

Očekivano trajanje stranice ispod 300 sekundi ukazuje na visoku fluktuaciju predmemorije međuspremnika. To ukazuje na nedovoljnu alokaciju memorije ili prekomjerni pritisak na memoriju od upita.

Nizak omjer pogodaka predmemorije međuspremnika

Omjer pogodaka predmemorije međuspremnika ispod 99% znači SQL Server često čita podatke s diska umjesto s memorije. To se događa kada je međuspremnik premalen ili SQL Server još se zagrijava nakon restart.

Dodjela memorije na čekanju

Bilo koja vrijednost iznad 0 za Memory Grants Pending (Dodjele memorije na čekanju) označava da upiti čekaju dodjele memorije. To predstavlja kritičan nedostatak memorije koji zahtijeva hitnu pozornost.

Za rješavanje problema s memorijom:

  1. konfigurirati SQL Server postavka maksimalne memorije kako bi se ostavilo dovoljno RAM-a za operativni sustav (obično 4-8 GB ovisno o veličini poslužitelja)
  2. Omogućite dopuštenje "Zaključaj stranice u memoriji" za SQL Server račun usluge
  3. Dodajte više fizičke RAM memorije poslužitelju ako pritisak na memoriju i dalje postoji
  4. Identificirajte i optimizirajte upite koji intenzivno koriste memoriju

10.3 Rješavanje problema s ulazno/izlaznim operacijama diska

Ulazno/izlazni operacijski sustav diska često postaje glavno usko grlo performansi u sustavima baza podataka. Dijagnosticirajte probleme s diskom pomoću ovih metoda:

Velika duljina reda diska

Duljina reda diska stalno iznad 2 (ili 2 po disku za RAID) ukazuje na to da podsustav diska ne može pratiti I/O zahtjeve. To stvara zaostatak u operacijama na čekanju.

Prekomjerna latencija diska

Vrijednosti prosječnog vremena diska u sekundama/čitanje i prosječnog vremena diska u sekundama/pisanje iznad 10-20 ms ukazuju na spor odziv diska. Pogoni zapisnika transakcija zahtijevaju posebno brze performanse, idealno ispod 5 ms za pisanje.

Visok % vremena diska

Trajni % vremena diska iznad 85% ukazuje na zasićenost diska. Disk troši most svog vremena obrađujući I/O zahtjeve s malo preostalog slobodnog kapaciteta.

Prije rješavanja problema s diskom, provjerite jesu li to simptomi problema s memorijom. Nedovoljno memorije SQL Server čitati više podataka s diska, umjetno napuhujući metrike diska.

Za rješavanje problema s ulazno/izlaznim sustavima originalnog diska:

  • Nadogradite na brže diskove (SSD-ove umjesto HDD-ova)
  • Implementirajte RAID konfiguracije za bolje performanse
  • Odvojite datoteke baze podataka, zapisnike transakcija i tempdb na različite fizičke diskove
  • Dodajte više memorije kako biste smanjili čitanje diska
  • Optimizirajte indekse kako biste smanjili nepotrebne ulazno/izlazne operacije
  • Pregledajte i optimizirajte upite s lošim rezultatima

10.4 Rješavanje blokiranja i zastoja

Do blokiranja dolazi kada jedna sesija ima zaključane dijelove koji sprječavaju nastavak drugih sesija. Pratite ove brojače kako biste identificirali probleme s blokiranjem:

  • Blokirani procesi: Idealno bi trebalo biti 0
  • Čekanja zaključavanja/sekunda: Broj zahtjeva za zaključavanje koji zahtijevaju čekanje
  • Prosječno vrijeme čekanja: Prosječno trajanje čekanja zaključavanja

Za istraživanje blokiranja:

  1. Otvorite Monitor aktivnosti u SSMS-u
  2. Povećaj Procesira odjeljak
  3. Tražite procese s vrijednostima različitim od nule Blokirao/la vrijednosti
  4. Identificirajte ID blokirajuće sesije
  5. Pregledajte upite koji uzrokuju blokiranje

Za detaljniju analizu blokiranja koristite sp_WhoIsActive. Prekomjerni unosi wait_info često ukazuju na sukob tempdb-a ili probleme s blokiranjem.

Za smanjenje blokiranja:

  • Minimizirajte trajanje transakcije
  • Koristite odgovarajuće razine izolacije
  • Dodajte indekse za smanjenje trajanja zaključavanja
  • Razmotrite izolaciju READ_COMMITTED_SNAPSHOT
  • Pregledajte i optimizirajte dugotrajne upite

10.5 Problemi s performansama upita

Identificiranje skupih upita ključno je za praćenje performansi SQL-a. Koristite ove metode za pronalaženje problematičnih upita:

Korištenje Monitora aktivnosti

  1. U SSMS-u desnom tipkom miša kliknite naziv poslužitelja
  2. odabrati Aktivnost Monitor
  3. Proširiti Nedavni skupi upiti
  4. Pregledajte upite s visokim CPU-om, trajanjem ili logičkim čitanjima

Korištenje DMV-ova

Upit sys.dm_exec_query_stats za identifikaciju upita koji intenzivno koriste 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

Analiza planova izvršenja

  1. U SSMS-u otvorite novi prozor za upit
  2. Kliknite Prikaži procijenjeni plan izvršenja (Ctrl+L) ili Uključite stvarni plan izvršenja (Ctrl+M)
  3. Izvršite svoj upit
  4. Pregledajte plan izvršenja za skupe operacije
  5. Potražite skeniranje tablica, skeniranje indeksa ili high-cost operacije

Optimizirajte upite prema:

  • Dodavanje odgovarajućih indeksa
  • Prepisivanje upita radi izbjegavanja skupih operacija
  • Ažuriranje statistike
  • Korištenje specifičnih naziva stupaca umjesto SELECT *
  • Izbjegavanje nepotrebnih DISTINCT ili ORDER BY klauzula

10.6 Otkrivanje i ispravljanje oštećene baze podataka

Oštećenje baze podataka može uzrokovati smanjenje performansi, gubitak podataka i kvarove sustava. Brzo otkrivanje i rješavanje oštećenja ključno je za održavanje zdravlja baze podataka.

Pokazatelji oštećenja baze podataka

Obratite pažnju na ove znakove potencijalne korupcije:

  • Poruke o pogreškama u SQL Server zapisnik pogrešaka (pogreška 823, 824 ili 825)
  • Neočekivane pogreške aplikacije prilikom pristupa određenim tablicama
  • Sporo izvođenje upita na prethodno brzim upitima
  • SQL Server rušenja ili neočekivane rezolucijetarts
  • Sumnjive stranice koje se pojavljuju u tablici msdb.dbo.suspect_pages

Korištenje DBCC CHECKDB za detekciju

DBCC CHECKDB je primarni alat za otkrivanje oštećenja baze podataka. Redovito ga pokrećite kako biste probleme otkrili u ranoj fazi.

Praćenje sumnjivih stranica

SQL Server automatski bilježi sumnjive stranice u msdb bazu podataka:

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)

Svi vraćeni retci ukazuju na probleme s korupcijom koji zahtijevaju hitnu pozornost.

Strategije za sprječavanje korupcije

  • Omogući provjeru stranice s opcijom CHECKSUM
  • Redovito održavajte sigurnosne kopije baze podataka
  • Koristite pouzdan hardver s ispravljanjem pogrešaka
  • Praćenje stanja diska pomoću alata proizvođača
  • Zakažite redovita izvršavanja DBCC CHECKDB-a
  • Zadržati SQL Server ažurirano s najnovijim zakrpama

Mogućnosti oporavka i popravka

Ako se otkriju greške, možete isprobati ugrađeni alat DBCC CHECKDB da ih popravite. Ako ne uspije, upotrijebite alate trećih strana kao što su DataNumen SQL Recovery koji se može nositi s teškim korupcijama.

11. Napredne tehnike praćenja

11.1 Nadzor pohrane upita

Query Store, predstavljen u SQL Server 2016. automatski bilježi podatke o performansama upita. Pruža vrijedne uvide u ponašanje upita, planove izvršenja i trendove performansi.

Omogućavanje pohrane upita

  1. U SSMS Object Exploreru desnom tipkom miša kliknite bazu podataka
  2. odabrati Nekretnine
  3. kliknite Trgovina upita stranica
  4. In Način rada (zahtijevano), Izaberi Čitaj Napiši
  5. Konfigurirajte dodatne postavke po potrebi
  6. Kliknite OK

Praćenje performansi upita

Pristup izvješćima Query Storea putem Object Explorera:

  1. Proširite bazu podataka u Object Exploreru
  2. Proširiti Trgovina upita
  3. Odaberite između dostupnih izvješća:
    • Regresirani upiti
    • Ukupna potrošnja resursa
    • Najčešći upiti koji troše resurse
    • Upiti s prisilnim planovima
    • Praćeni upiti

Detekcija regresije plana

Spremnik upita automatski otkriva kada se planovi izvršavanja upita promijene i performanse se smanje. Pregledajte izvješće o regresiranim upitima kako biste identificirali upite na koje utječu promjene plana.

Upravljanje prisilnim planom

Kada Query Store identificira bolji plan izvršenja, prisilno SQL Server da ga koristite:

  1. Otvorite upit u trgovini upita
  2. Desnim klikom miša kliknite željeni plan
  3. odabrati Plan snaga

To odmah poboljšava performanse bez potrebe za promjenama koda.

11.2 Praćenje održavanja indeksa

Fragmentacija indeksa s vremenom smanjuje performanse upita. Redovito pratite i održavajte indekse kako biste osigurali optimalne performanse.

Provjera fragmentacije

Koristite ovaj upit za provjeru fragmentacije indeksa:

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

Pokrenite ovaj upit izvan vršnih sati jer može zahtijevati puno resursa.

Analiza gustoće stranica

Gustoća stranica pokazuje koliko su indeksirane stranice pune. Niska gustoća rasipa prostor i smanjuje performanse:

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

Odluke o reorganizaciji u odnosu na obnovu

Odaberite operacije održavanja indeksa na temelju razina fragmentacije:

  • Fragmentacija 10-30%: Koristite ALTER INDEX REORGANIZE
  • Fragmentacija > 30%: Koristite ALTER INDEX REBUILD
  • Fragmentacija < 10%: Nije potrebna nikakva akcija

Operacije reorganizacije zahtijevaju manje resursa i mogu se izvoditi online. Operacije ponovne izgradnje su temeljitije, ali troše značajne resurse.

11.3 Ažuriranja statistike baze podataka

Pomoć za statistiku baze podataka SQL ServerOptimizator upita stvara učinkovite planove izvršenja. Zastarjela statistika dovodi do loših performansi upita.

Automatska obnova statistike

Omogući automatska ažuriranja statistike:

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

Praćenje statistike zdravlja

Provjerite kada su statistike zadnji put ažurirane:

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

Ručno ažurirajte statistiku kada je potrebno:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Prikupljanje prilagođenih podataka o performansama

Izradite prilagođena rješenja za praćenje performansi izravnim upitom sys.dm_os_performance_counters i pohranjivanjem rezultata u tablice.

Izrada prilagođenih skripti za kolekcije

Izgradite pohranjenu proceduru za prikupljanje podataka brojača performansi:

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

Korištenje sys.dm_os_performance_counters

Izravno upitajte brojače performansi:

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

Pohranjivanje povijesnih podataka

Izradite tablicu za pohranjivanje metrika performansi tijekom vremena:

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 pohrane pivotiranih podataka

Pohranite podatke u pivotiranom formatu s jednim retkom po vremenu uzorka i jednim stupcem po brojaču. To smanjuje prostor za pohranu i poboljšava performanse upita u usporedbi s pohranjivanjem jednog retka po brojaču po uzorku.

11.5 Nadzor više poslužitelja

Za okruženja s više SQL Server instance, implementirajte centralizirani nadzor.

Centralizirani pristup nadzoru

  • Izradite namjensku bazu podataka za praćenje na zasebnom poslužitelju
  • Prikupljajte podatke sa svih servera u centralno spremište
  • Koristiti SQL Server Poslovi agenta za pokretanje skripti za prikupljanje
  • Implementirajte prikupljanje brojača performansi dostupnih putem mreže

Udaljeni nadzor poslužitelja

Konfigurirajte Monitor performansi za prikupljanje podataka s udaljenih poslužitelja navođenjem naziva poslužitelja prilikom dodavanja brojača. Osigurajte da pravila vatrozida dopuštaju promet Monitora performansi.

Izvještavanje na više poslužitelja

Izradite izvješća koja uspoređuju performanse na više poslužitelja kako biste identificirali odstupanja i neravnoteže kapaciteta.

12. nadgledanje SQL Server u okruženjima u oblaku

12.1 Nadzor Azure SQL baze podataka

Azure SQL baza podataka pruža ugrađene mogućnosti praćenja koje se razlikuju od lokalnih rješenja. SQL Server.

Integracija Azure Monitora

Azure Monitor automatski prikuplja metrike iz Azure SQL baze podataka, uključujući:

  • Iskorištenost DTU-a ili vCore-a
  • Korištenje prostora za pohranu
  • Statistika veza
  • Zastoji i vremenska ograničenja

Pristupite ovim metrikama putem Azure Portala ili Azure Monitor API-ja.

Ugrađene značajke praćenja

Azure SQL baza podataka uključuje:

  • Preporuke za automatsko podešavanje
  • Uvid u performanse upita
  • Inteligentni uvidi za otkrivanje anomalija
  • Ugrađena upozorenja i dijagnostikaostics

Uvid u performanse upita

Ova značajka pruža vizualizaciju upita koji najviše troše resurse, analizu trajanja upita i povijesne trendove performansi. Pristupite joj putem Azure portala u okviru resursa vaše SQL baze podataka.

12.2 Alati za nadzor u oblaku

Platforme u oblaku nude izvorna rješenja za nadzor optimizirana za njihova okruženja:

  • Azure Monitor i Application Insights za Azure SQL bazu podataka
  • AWS CloudWatch za RDS SQL Server
  • Google Cloud Monitoring za Cloud SQL Server

Ovi alati se besprijekorno integriraju s cloud infrastrukturom i pružaju objedinjeno praćenje svih cloud resursa.

Praćenje hibridnog okruženja

Za hibridne implementacije koje obuhvaćaju lokalnu primjenu i primjenu u oblaku, koristite alate koji podržavaju oba okruženja poput Redgate SQL Monitora, SolarWinds DPA ili prilagođena rješenja koja koriste centralizirano prikupljanje podataka.

12.3 Razlike u performansama u oblaku

oblak SQL Server okruženja imaju jedinstvene karakteristike:

Modeli raspodjele resursa

Pružatelji usluga u oblaku koriste različite metode dodjele resursa (DTU-ove, vCores, serverless) koje utječu na to kako interpretirate metrike performansi. Razumite ograničenja i karakteristike svoje razine usluge.

Razmatranja skaliranja

Oblačna okruženja nude mogućnosti dinamičkog skaliranja. Pratite iskorištenost resursa kako biste odredili kada treba povećati ili smanjiti skaliranje. Mnoge oblačne platforme pružaju automatsko skaliranje na temelju pragova performansi.

13. Automatizacija praćenja performansi

13.1 SQL Server Poslovi agenta

Automatizirajte prikupljanje podataka pomoću SQL Server Poslovi agenta za dosljedno praćenje bez ručne intervencije.

Planirano prikupljanje podataka

  1. U SSMS-u proširite SQL Server Agent
  2. Desnom tipkom miša Posao i odaberite Novi posao
  3. Navedite naziv posla (npr. „Prikupljanje metrika performansi“)
  4. Kliknite Koraci i dodajte novi korak
  5. Postavi vrstu na Transact-SQL skripta
  6. Unesite skriptu za prikupljanje podataka
  7. Kliknite Raspored i dodajte raspored
  8. Konfigurirajte učestalost (npr. svakih 5 minuta)
  9. Kliknite OK stvoriti posao

Automatsko izvještavanje

Izradite poslove koji generiraju izvješća o učinku i šalju ih e-poštom:

  1. Izradite pohranjenu proceduru koja generira izvješća
  2. Korištenje Database Maila za slanje izvješća putem e-pošte
  3. Zakažite posao da se izvršava svakodnevno ili tjedno

13.2 PowerShell automatizacija

PowerShell pruža moćne mogućnosti automatizacije za SQL Server monitor performansi.

Skripte za prikupljanje brojača performansi

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

Koristite WMI za prikupljanje podataka o performansama s udaljenih poslužitelja:

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

Automatizirano upozorenje

Izradite PowerShell skripte koje provjeravaju metrike i šalju upozorenja kada se prekorače pragovi:

$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 Izrada nadzornih ploča

Vizualizirajte podatke o performansama pomoću interaktivnih nadzornih ploča za bolji uvid.

Power BI integracija

  1. Povežite Power BI s tablicama podataka o performansama
  2. Izradite vizualizacije za ključne metrike
  3. Dodajte slicere za vremenski raspon i odabir poslužitelja
  4. Objavljivanje nadzornih ploča u usluzi Power BI
  5. Konfigurirajte rasporede automatskog osvježavanja

Izrada nadzorne ploče u stvarnom vremenu

Koristite alate poput Grafane ili prilagođene web aplikacije za izradu nadzornih ploča u stvarnom vremenu koje izravno šalju upite DMV-ovima i brojačima performansi.

Vizualizacija povijesnih trendova

Izradite linijske grafikone koji prikazuju trendove tijekom vremena za:

  • Korištenje CPU-a
  • Korištenje memorije
  • Disk I/O
  • Izvedba upita
  • Broj veza

14. Studije slučaja i praktični primjeri

14.1 Studija slučaja: Rješavanje pritiska pamćenja

Identifikacija simptoma

Proizvodnja SQL Server iskusio je sporo vrijeme odgovora na upite tijekom vršnih sati. Korisnici su se žalili na isteke vremena aplikacije i smanjene performanse.

Protuanaliza

Podaci Performance Monitora otkriveni su:

  • Očekivano trajanje stranice palo je na 50 sekundi (normalno: >300)
  • Omjer pogodaka predmemorije pao je na 85% (normalno: >99%)
  • Vrijednosti na čekanju za memorijske dodjele često su prikazivale 5-10
  • Broj čitanja fizičkog diska/s značajno je porastao

Koraci rješenja

  1. provjeren SQL Server postavka maksimalne memorije – otkriveno je da je postavljena na zadano (neograničeno)
  2. Pregledana ukupna memorija poslužitelja u odnosu na Tardobiti memoriju poslužitelja – pokazao je značajan nedostatak
  3. Konfigurirana je maksimalna memorija poslužitelja tako da ostane 8 GB za operativni sustav
  4. Omogućeno je dopuštenje "Zaključaj stranice u memoriji" za SQL Server račun usluge
  5. Dodano dodatnih 32 GB RAM-a na server
  6. Praćene performanse tijekom jednog tjedna – očekivano trajanje stranice stabilizirano iznad 500 sekundi

Rezultat: Vrijeme odgovora na upite poboljšano je za 60%, pritužbe korisnika su prestale, a performanse aplikacije vratile su se u normalu.

14.2 Studija slučaja: Optimizacija performansi CPU-a

Identifikacija simptoma

A SQL Server konstantno je pokazivao iskorištenost CPU-a iznad 90% tijekom radnog vremena, što je uzrokovalo spore performanse aplikacija i frustracije korisnika.

Protuanaliza

Praćenje performansi otkrilo je:

  • % Vrijeme procesora u prosjeku 92% s čestim skokovima do 100%
  • Duljina reda procesora stalno iznad 4 (poslužitelj je imao 8 jezgri)
  • SQL kompilacije/s bile su 25% paketnih zahtjeva/s (trebale bi biti <10%)
  • SQL rekompilacije/s bile su 15% paketnih zahtjeva/s

Koraci rješenja

  1. Korišteni su DMV-ovi za identifikaciju upita koji najviše troše CPU
  2. Analizirani planovi izvršenja za identificirane upite
  3. Otkriveno više skeniranja tablica na velikim tablicama zbog nedostajućih indeksa
  4. Izradio odgovarajuće indekse na temelju preporuka plana izvršenja
  5. Identificiran dinamički SQL koji uzrokuje prekomjerno kompiliranje
  6. Izmijenjeni kod aplikacije za korištenje parametriziranih upita
  7. Implementirani vodič za plan za problematične pohranjene procedure
  8. Ažurirana statistika o često korištenim tablicama

Rezultat: Iskorištenost CPU-a pala je na prosječnih 45% tijekom radnog vremena. Vrijeme izvršavanja upita poboljšano je za 70%. Značajno se poboljšala i odzivnost aplikacije.

14.3 Studija slučaja: Rješavanje uskih grla u I/O operacijama diska

Identifikacija simptoma

Korisnici su prijavili izuzetno spor odziv aplikacije tijekom operacija učitavanja podataka i večernje grupne obrade.

Protuanaliza

Podaci o performansama pokazali su:

  • Prosječno vrijeme zapisivanja na disku premašilo je 45 ms na disku zapisnika transakcija
  • Prosječna duljina reda diska 12 na disku s datotekama
  • % vremena diska ostalo je iznad 95% satima tijekom batch poslova
  • Broj pisanja stranica/sek bio je iznimno visok

Koraci rješenja

  1. Provjerene postavke memorije bile su ispravne – nisu pronađeni problemi s memorijom
  2. Analizirana konfiguracija diska – otkrivene su sve datoteke na istom skupu vretena
  3. Odvojeni zapisnici transakcija na namjenske brze SSD diskove
  4. Tempdb je premješten na odvojene SSD diskove
  5. Implementirano je više tempdb datoteka (jedna po jezgri)
  6. Nadograđeni pogoni za datoteke podataka na RAID 10 SSD konfiguraciju
  7. Optimizirani paketni poslovi za korištenje manjih paketa transakcija
  8. Dodani indeksi za smanjenje nepotrebnih skeniranja tablica tijekom serijskih operacija

Rezultat: Prosječno vrijeme pisanja na disku u sekundama palo je na 3 ms. Prosječna duljina reda čekanja na disku bila je ispod 1. Vrijeme dovršetka serijskih zadataka smanjeno je za 75%.

15. Budući trendovi u SQL Server Praćenje

15.1 Integracija umjetne inteligencije i strojnog učenja

Umjetna inteligencija i strojno učenje se transformiraju SQL Server monitor performansi.

Prediktivna analitika

Modeli strojnog učenja predviđaju buduće potrebe za resursima na temelju povijesnih podataka. Ovi sustavi mogu predvidjeti:

  • Kada će se kapacitet skladišta iscrpiti
  • Očekivani zahtjevi za CPU i memorijom tijekom vršnih razdoblja
  • Smanjenje performansi upita prije nego što utječe na korisnike
  • Optimalna vremena za operacije održavanja

Otkrivanje anomalija

Alati temeljeni na umjetnoj inteligenciji automatski otkrivaju neobične obrasce u pokazateljima performansi. Oni identificiraju anomalije koje bi ljudski administratori mogli propustiti i razlikuju normalne varijacije od stvarnih problema.

Automatizirano saniranje

Sustavi za samoobnavljanje automatski rješavaju uobičajene probleme kada se otkriju:

  • Restarusluge koje su zaustavljene
  • Preraspodijelite resurse tijekom vršnog opterećenja
  • Primjena hitnih popravaka za poznate probleme
  • Automatska obnova fragmentiranih indeksa

15.2 Evolucija praćenja u oblaku

Praćenje u oblaku se nastavlja razvijati s novim mogućnostima.

Ujedinjene platforme za praćenje

Moderne platforme pružaju vidljivost kroz jedno staklo na:

  • Lokalno SQL Server instance
  • Cloud-hosted baze podataka
  • Hibridna okruženja
  • Učinkovitost aplikacije
  • Metrike infrastrukture

Trendovi uočljivosti

Prelazak s praćenja na promatranje naglašava:

  • Razumijevanje ponašanja sustava iz izlaza
  • Korelacija metrika, zapisnika i tragova
  • Duboki uvidi u distribuirane sustave
  • Dijagnoza problema u stvarnom vremenu

15.3 Samoobnavljajući sustavi baza podataka

Budućnost SQL Server verzije će uključivati ​​više autonomnih mogućnosti.

Automatska optimizacija

Baze podataka će se kontinuirano optimizirati na sljedeći način:

  • Automatsko stvaranje i brisanje indeksa na temelju opterećenja
  • Prilagođavanje postavki konfiguracije za optimalne performanse
  • Transparentno prepisivanje neučinkovitih upita
  • Dinamičko upravljanje alokacijom resursa

Inteligentno podešavanje

Napredni sustavi će učiti iz obrazaca performansi i automatski primjenjivati ​​preporuke za podešavanje, smanjujući potrebu za ručnom intervencijom administratora baza podataka.

16. Zaključak i ključni zaključci

16.1 Sažetak bitnih praksi praćenja

Djelotvoran SQL Server Monitor performansi zahtijeva sveobuhvatan pristup koji kombinira alate, tehnike i najbolje prakse.

Sažetak kritičnih brojača

Usredotočite napore praćenja na ove bitne brojače:

  • Memorija: Očekivano trajanje stranice, omjer pogodaka predmemorije međuspremnika, memorijske dodjele na čekanju
  • CPU: % vremena procesora, duljina reda čekanja procesora
  • Disk: Prosječno vrijeme diska u sekundama/čitanje i pisanje, duljina reda čekanja na disku
  • SQL ServerZahtjevi za pakete/s, Kompilacije/s, Korisničke veze

Sažetak najbolje prakse

  • Utvrdite osnovne vrijednosti tijekom normalnog rada
  • Postavite inteligentne pragove upozorenja na temelju osnovnih vrijednosti
  • Redovito pregledavajte podatke o učinku
  • Nadzor stanja s detaljnim podacima
  • Zadržite dugoročne podatke za analizu trendova
  • Koristite odgovarajuće alate za svaki scenarij praćenja

16.2 Pristup kontinuiranog poboljšanja

SQL Server Praćenje učinka nije jednokratna aktivnost već kontinuirani proces koji zahtijeva kontinuirano usavršavanje.

Redoviti ciklusi pregleda

  • Dnevno: Provjerite upozorenja i trenutne performanse
  • Tjedno: Pregledajte trendove i identificirajte probleme koji se pojavljuju
  • Mjesečno: Analizirajte dugoročne obrasce i potrebe za kapacitetima
  • Tromjesečno: Ažuriranje osnovnih vrijednosti i pregled učinkovitosti praćenja

Održavanje koraka s alatima

Redovito ažurirajte alate i tehnike praćenja:

  • Procijenite nove značajke praćenja u SQL Server Ažuriranja
  • Testiranje novih alata trećih strana
  • Pohađajte obuke i konferencije
  • Sudjelovati u SQL Server forumima zajednice
  • Podijelite znanje s članovima tima

16.3 sljedećih koraka

Implementirati SQL Server sustavno praćenje performansi:

Plan provedbe

  1. Tjedan 1: Postavite Monitor performansi s osnovnim brojačima
  2. Tjedan 2: Izradite skupove kolekcionara podataka za automatizirano prikupljanje
  3. Tjedan 3: Utvrdite osnovne vrijednosti tijekom normalnog rada
  4. Tjedan 4: Konfigurirajte upozorenja za kritične pragove
  5. Mjesec 2: Implementirajte dodatne alate za praćenje (DMV-ovi, prošireni događaji)
  6. Mjesec 3: Razvoj prilagođenih nadzornih ploča i izvješća
  7. U tijeku: Usavršiti praćenje na temelju iskustva i promjenjivih zahtjeva

Dodatni resursi

Nastavite učiti o SQL Server Pratite performanse putem Microsoftove dokumentacije, blogova zajednice i praktičnih vježbi. Eksperimentirajte s različitim alatima i tehnikama kako biste pronašli ono što najbolje funkcionira za vaše okruženje.

17. Često postavljana pitanja (FAQ)

17.1 Što su most važno SQL Server brojače performansi za praćenje?

Most kritičan SQL Server Brojači performansi uključuju:

  • Memorija: Očekivano trajanje stranice (treba biti >300 sekundi) i omjer pogodaka predmemorije međuspremnika (trebao bi biti >99%)
  • CPU: % vremena procesora (trajne vrijednosti <75%) i duljina reda čekanja procesora (treba biti <2 po jezgri)
  • Disk: Prosječno vrijeme diska u sekundama/čitanje i pisanje (treba biti <10-20 ms) i duljina reda čekanja na disku (treba biti <2 po disku)
  • SQL ServerZahtjevi za pakete/s, SQL kompilacije/s i Memorijske dodjele na čekanju (treba biti 0)

Ovi brojači pružaju sveobuhvatan uvid u stanje sustava i pomažu u brzom prepoznavanju uskih grla.

17.2 Koliko često trebam prikupljati podatke o performansama?

Učestalost prikupljanja ovisi o vašim ciljevima praćenja:

  • Osnovno praćenje: Svake 1 minute (60 sekundi)
  • Aktivno rješavanje problema: Svakih 15-30 sekundi u kratkim razdobljima
  • Dugoročni trend: Svakih 5 minuta

Izbjegavajte kontinuirano prikupljanje podataka visoke učestalosti jer to može utjecati na performanse i generirati prekomjernu količinu podataka. Koristite dulje intervale za rutinsko praćenje, a kraće intervale samo prilikom istraživanja specifičnih problema.

17.3 Koja je razlika između Monitora performansi i SQL Server Profiler?

Monitor performansi i SQL Server Profileri služe različitim svrhama:

Performance Monitor:

  • Nadzire sustav i SQL Server brojači performansi
  • Prati iskorištenost resursa (CPU, memorija, disk)
  • Niski režijski troškovi, pogodno za kontinuirano praćenje
  • Pruža agregirane metrike tijekom vremena

SQL Server profiler:

  • Tragovi pojedinca SQL Server događaji i upiti
  • Bilježi detaljne informacije o izvršavanju upita
  • Veći režijski troškovi, ne preporučuje se za kontinuiranu upotrebu
  • Najbolje za rješavanje problema sa specifičnim upitima
  • Zastarjelo u korist proširenih događaja

Koristite Monitor performansi za cjelokupno praćenje sustava i Proširene događaje (ne Profiler) za detaljnu analizu na razini upita.

17.4 Utjecaj monitora performansi Can SQL Server izvođenje?

Kada je pravilno konfiguriran, Monitor performansi ima minimalan utjecaj na SQL Server performanse, obično manje od 2% opterećenja. Međutim, pretjerano praćenje može uzrokovati probleme:

  • Previše brojača povećava opće troškove
  • Vrlo kratki intervali uzorkovanja (manje od 15 sekundi) opterećuju resurse
  • Kontinuirano visokofrekventno prikupljanje generira velike datoteke zapisnika

Za smanjenje utjecaja:

  • Pratite samo potrebne brojače
  • Koristite odgovarajuće intervale uzorkovanja (60 sekundi za rutinsko praćenje)
  • Pohranjujte zapisnike na diskove odvojeno od datoteka baze podataka
  • Zakažite praćenje koje zahtijeva puno resursa izvan vršnih sati

17.5 Koliko dugo trebam čuvati podatke o praćenju performansi?

Zadržavanje podataka ovisi o vašim analitičkim potrebama i kapacitetu pohrane:

  • minimalna: 3 mjeseca za rješavanje nedavnih problema
  • Preporučena: 1-2 godine za planiranje kapaciteta i analizu trendova
  • Optimalno: Neograničeno ako pohrana dopušta, jer povijesni podaci s vremenom postaju vrijedniji

Podaci brojača performansi dobro se komprimiraju i zauzimaju relativno malo prostora. Razmislite o arhiviranju starijih podataka u zasebnu pohranu umjesto brisanja. Mnoge organizacije smatraju da su godine povijesnih podataka neprocjenjive za planiranje kapaciteta i identificiranje dugoročnih trendova.

17.6 Koje su dobre granične vrijednosti za ključne brojače performansi?

Preporučene granične vrijednosti za upozorenje:

  • Dodjele memorije na čekanju: Upozorenje kada > 0
  • Očekivano trajanje stranice: Upozorenje kada je < 300 sekundi
  • % Vrijeme procesora: Upozorenje kada je > 80% tijekom 5 minuta
  • Duljina reda procesora: Upozorenje kada je > 2 po jezgri
  • Prosječno vrijeme diska u sekundama/čitanje ili pisanje: Upozorenje kada je > 20 ms
  • Duljina reda diska: Upozorenje kada je > 2 po disku
  • Blokirani procesi: Upozorenje kada > 5

Prilagodite ove pragove na temelju osnovnih podataka i specifičnih karakteristika radnog opterećenja. Ono što je normalno za jedno okruženje može ukazivati ​​na probleme u drugom.

17.7 Kako mogu pratiti SQL Server performanse na daljinu?

Daljinski upravljač za monitor SQL Server slučajevi korištenja ovih metoda:

  1. Performance Monitor: Navedite naziv udaljenog računala prilikom dodavanja brojača
  2. PowerShell: Koristite parametar -ComputerName s Get-Counter
  3. DMV-ovi: Povežite se s udaljenim poslužiteljima putem SSMS-a i upitajte DMV-ove
  4. Alati treće strane: Most alati za nadzor podržavaju nadzor udaljenog poslužitelja

Osigurajte da pravila vatrozida dopuštaju promet Performance Monitora i da imate odgovarajuća dopuštenja na udaljenom poslužitelju. Za više poslužitelja razmislite o implementaciji centraliziranog nadzora s namjenskim poslužiteljem za nadzor i bazom podataka.

17.8 Koji je najbolji besplatni alat za SQL Server monitor performansi?

Dostupno je nekoliko izvrsnih besplatnih alata za praćenje SQL Server izvođenje:

  • Monitor performansi sustava Windows: Ugrađen, sveobuhvatan i pouzdan
  • SSMS Monitor aktivnosti: Praćenje u stvarnom vremenu bez dodatne instalacije
  • Prošireni događaji: Ugrađeno lagano praćenje događaja SQL Server
  • sp_TkoJeAktivno: Popularna besplatna pohranjena procedura za detaljno praćenje aktivnosti
  • DBA nadzorna ploča: Alat za praćenje otvorenog koda sa sveobuhvatnim značajkama
  • SQLWATCH: Otvoreni kod s mogućnostima praćenja gotovo u stvarnom vremenu

Za most organizacije, Monitor performansi u kombinaciji s SSMS alatima i sp_WhoIsActive pruža izvrsne mogućnosti praćenja bez dodatnih troškova.ost.

17.9 Kako mogu izvesti PerfMon podatke za analizu?

Izvoz podataka Monitora performansi pomoću ovih metoda:

Izvoz u CSV:

  1. Otvorite Monitor performansi s učitanom datotekom zapisnika
  2. Desnom tipkom miša kliknite graf i odaberite Spremi podatke kao
  3. Odaberite Tekstualna datoteka (razdvojena zarezom) (.csv)
  4. Odaberite lokaciju i spremite
  5. Otvori u Excelu za analizu

Koristite naredbu Relog:

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

Ovaj uslužni program naredbenog retka pretvara binarne datoteke zapisnika (.blg) u CSV format radi lakše analize u aplikacijama za proračunske tablice.

17.10 Kada bih trebao koristiti alate za praćenje trećih strana umjesto ugrađenih opcija?

Razmotrite alate trećih strana kada:

  • Upravljanje velikim brojem SQL Server primjeri (10+)
  • Zahtjev za centraliziranim nadzorom u više podatkovnih centara
  • Potrebne su napredne značajke poput prediktivne analitike ili otkrivanja anomalija
  • Želja za integriranim upozoravanjem sa sustavima za upravljanje incidentima
  • Zahtjev za izvještavanje o usklađenosti i povijesnu analizu
  • Nedostatak DBA resursa za izgradnju i održavanje prilagođenih rješenja
  • Praćenje heterogenih okruženja baza podataka (SQL Server, Oracle, MySQL, itd.)

Ugrađeni alati dobro funkcioniraju za manja okruženja ili kada imate vješte administratore baza podataka koji mogu razviti prilagođena rješenja za praćenje. Alati trećih strana pružaju vrijednost kroz uštedu vremena, napredne značajke i profesionalnu podršku.

18. Dodatni resursi

18.1 Službena dokumentacija

Microsoft pruža opsežnu dokumentaciju za SQL Server monitor performansi:

18.2 Preporučeni alati i preuzimanja

Neophodni alati za SQL Server monitor performansi:

  • PAL alat: https://github.com/clinthuffman/PAL
  • sp_TkoJeAktivno: http://whoisactive.com/
  • DBA nadzorna ploča: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Komplet prve pomoći (Brent Ozar): https://www.brentozar.com/first-aid/
  • SQL Server Management Studio: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Resursi zajednice

Učite od SQL Server zajednica:

  • SQL Server Središnji: https://www.sqlservercentral.com/
  • Blog Brenta Ozara: https://www.brentozar.com/blog/
  • SQL koliba: https://www.sqlshack.com/
  • MSSQL savjeti: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • Stack Overflow SQL Server označiti: https://stackoverflow.com/questions/tagged/sql-server

Ovi resursi pružaju vodiče, savjete za rješavanje problema i najbolje prakse od iskusnih SQL Server profesionalci. Sudjelovanje u forumima zajednice pomaže vam da učite iz tuđih iskustava i dijelite vlastito znanje.


O Autor:

Yuan Sheng je viši administrator baze podataka (DBA) s preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka poduzeća. Uspješno je riješio stotine scenarija oporavka baza podataka u financijskim uslugama, zdravstvu i proizvodnim organizacijama.

Yuan se specijalizirao za SQL Server oporavak baze podataka, rješenja visoke dostupnostii optimizaciju performansi. Njegovo opsežno praktično iskustvo uključuje upravljanje bazama podataka od više terabajta, implementaciju Grupe dostupnosti Always Oni razvoj automatiziranih strategija sigurnosnog kopiranja i oporavka za ključne poslovne sustave.

Svojim tehničkim znanjem i praktičnim pristupom, Yuan se usredotočuje na stvaranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima u rješavanju složenih SQL Server učinkovito rješava izazove. Ostaje u toku s najnovijim SQL Server izdanja i Microsoftove razvojne tehnologije baza podataka, redovito testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.

Imate pitanja o SQL Server oporavak ili trebate dodatne upute za rješavanje problema s bazom podataka? Yuan pozdravlja povratne informacije i sugestije za poboljšanje ovih tehničkih resursa.

Podijeli sada: