1. Uvod u SQL Server Performance Monitor
1.1 Šta 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. To uključuje prikupljanje i interpretaciju podataka o različitim aspektima vašeg sistema baze podataka kako bi se osigurale optimalne performanse, spriječili problemi i održalo zdravlje baze podataka.
Praćenje performansi obuhvata 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 identifikuju potencijalne probleme prije nego što utiču na korisnike ili poslovne operacije.
1.2 Ključne prednosti praćenja performansi
efektivan SQL Server Monitor performansi pruža nekoliko ključnih prednosti:
- Proaktivno otkrivanje problema: Identifikujte i riješite potencijalne probleme prije nego što utiču na korisnike ili poslovne operacije
- Optimizacija performansi: Utvrdite uska grla i neefikasnosti kako biste poboljšali ukupne performanse baze podataka
- Planiranje kapaciteta: Prognozirajte potrebe za resursima i planirajte budući rast na osnovu historijskih podataka
- Usklađenost i sigurnost: Osigurati pridržavanje 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 utiču na korisničko iskustvo
- Gubitak ili oštećenje podataka
- Neefikasno korištenje resursa dovodi do nepotrebnih troškova
- Frustrirani korisnici i potencijalni gubitak prihoda
Prema IDC studiji iz 2023. godine, 65% problema s performansama baze podataka proizlazi iz loših praksi praćenja ili optimizacije.
2. Razumijevanje Windows Performance Monitora (PerfMon)
2.1 Šta je Windows Performance Monitor?
Windows Performance Monitor (PerfMon) je ugrađeni Windows alat koji prati sistemske resurse i performanse aplikacija. SQL Server administratorima, PerfMon pruža neprocjenjiv uvid u operativni sistem i SQL Server metrike, što ga čini neophodnim za sveobuhvatnu analizu performansi.
PerfMon mjeri statistiku performansi u redovnim intervalima i sprema tu statistiku u datoteke za kasniju analizu. Administratori baze podataka mogu odabrati vremenski interval, format datoteke i koje statistike će pratiti. Alat nije SQL Server-specifični—sistem administratori ga koriste za praćenje samog Windowsa, Exchangea, datotečnih servera i bilo koje aplikacije koja može imati uska grla.
2.2 Pokretanje Monitora performansi
Performance Monitor možete pokrenuti na nekoliko načina:
- kliknite Start, tip perfmon U polju za pretragu kliknite na "Performand Monitor" u rezultatima pretrage:
- pritisnuti Windows + R, tip perfmon, i pritisnite ući
- Idite do Kontrolna tabla -> Sistem i sigurnost -> Administrative Tools -> Performance Monitor
3. suštinski 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 da li vaša baza podataka ima dovoljno memorijskih resursa.
Dostupni MBytes
Ovaj brojač prikazuje količinu fizičke memorije koja je odmah dostupna 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 je ostavljena na zadanoj vrijednosti ili nijeSQL Server aplikacije troše memoriju.
Očekivano trajanje života na stranici
Očekivano vrijeme trajanja stranice mjeri koliko dugo (u sekundama) stranica ostaje u skupu međuspremnika bez referenciranja. Normalna vrijednost je 300 sekundi ili više. Niže vrijednosti ukazuju na pritisak memorije i prekomjerno korištenje međuspremnika, što smanjuje efikasnost keš memorije.
Omjer pogodaka keš memorije bafera
Ovaj brojač pokazuje postotak zahtjeva za podacima na koje se odgovori korištenjem SQL bafer keša (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 pokretanja.
Memorijski grantovi na čekanju
Ovo prikazuje broj procesa koji čekaju memoriju unutar SQL ServerPod normalnim uslovima, ova vrijednost bi trebala konstantno biti 0. Veće vrijednosti ukazuju na nedovoljnu alokaciju memorije za SQL Server.
Memorija ciljnog servera u odnosu na ukupnu memoriju servera
Memorija ciljnog servera označava idealnu količinu memorije SQL Server želi koristiti. Ukupna memorija servera pokazuje šta SQL Server trenutno koristi. Odnos između ovih vrijednosti trebao bi biti približno 1. Značajne razlike mogu ukazivati na pritisak memorije ili nedovoljnu raspoloživu memoriju.
3.2 Brojači performansi procesora
Brojači procesora pomažu u identifikaciji uskih grla procesora i razumijevanju kako SQL Server koristi računarske resurse.
% vremena procesora
Ovo mjeri postotak proteklog vremena koje procesor provodi izvršavajući niti koje nisu u mirovanju. Na aktivnim serverima, vrijednosti mogu porasti na 100%, ali kontinuirana upotreba preko 70-75% obično ukazuje na probleme s performansama za korisnike. Nedostajući ili neadekvatni indeksi često uzrokuju veliku upotrebu CPU-a.
% Privilegovano vrijeme
Procesorsko vrijeme se dijeli na korisnički način rada i privilegirani (kernel) način rada. Sav pristup disku i ulazno/izlazni podaci se odvijaju u kernel načinu rada. Ako ovaj brojač prelazi 25%, sistem vjerovatno obavlja previše ulazno/izlaznih operacija. Normalne vrijednosti se kreću između 5% i 10%.
Dužina reda procesora
Ovaj brojač prikazuje niti koje čekaju CPU resurse. Vrijednosti su konstantno iznad 1 (osim tokom SQL Server kompresija sigurnosne kopije) ukazuju na opterećenje CPU-a. To često znači da su druge aplikacije instalirane na SQL Server mašina, š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 sistema.
3.3 Brojači performansi ulazno/izlaznih operacija diska
Brojači diskova su neophodni za praćenje performansi SQL-a jer I/O operacije s diska često postaju glavno usko grlo u sistemima baza podataka.
% Vrijeme diska
Ovo bilježi postotak vremena u kojem je disk bio zauzet operacijama čitanja/pisanja. Vrijednosti koje su konstantno iznad 85% ukazuju na usko grlo u ulazno/izlaznim operacijama. Budući da je disk mnogo 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 prelaze 10-20 ms, disku treba predugo da obradi podatke. Diskovi za zapisivanje transakcija zahtijevaju posebno brze performanse pisanja.
Dužina reda diska
Ovo prikazuje neriješene zahtjeve za čitanje/pisanje na disk. Vrijednosti koje su konstantno veće od 2 (ili 2 po disku za RAID nizove) ukazuju na to da disk ne može pratiti I/O zahtjeve.
Disk Bytes/sec
Ovo prati brzinu prijenosa podataka na/s diska. Ako ova brzina premaši nazivni kapacitet diska, podaci počinju da se zaostaju, što je naznačeno povećanjem dužine reda čekanja diska.
Disk Transfers/sec
Ovo prati broj operacija čitanja/pisanja izvršenih na disku. SQL Server Pristup podacima je obično nasumičan, što je sporije zbog kretanja glave diska. Osigurajte da ova vrijednost ostane ispod maksimalne brzine vašeg diska (obično 100/s za standardne diskove).
3.4 SQL Server Specifični brojači
3.4.1 Brojači upravitelja međuspremnika
Brojači upravitelja međuspremnika prate SQL ServerOperacije s memorijskim baferom:
- Č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 bafera koje je lazy writer napisao za oslobađanje memorije
- Stranica/sekunda kontrolne tačke: Stranice ispražnjene kontrolnom tačkom ili drugim operacijama koje zahtijevaju ispražnjenje svih prljavih stranica
3.4.2 SQL statistički brojači
Ovi brojači pružaju uvid u SQL Server obrada upita:
- Grupni zahtjevi/sek: Broj SQL paketnih zahtjeva koje je server primio. Ovo služi kao mjerilo za aktivnost servera.
- SQL kompilacije/sek: Broj SQL kompilacija. Trebao bi biti 10% ili manje od ukupnog broja zahtjeva za pakete/sek.
- SQL rekompilacije/s: Broj SQL rekompilacija. Također bi trebao biti 10% ili manje od ukupnog broja zahtjeva za paketima/sek.
3.4.3 Brojači opće statistike
- Korisničke veze: Broj korisnika povezanih na sistem. Koristi se kao referentna vrijednost za praćenje rasta veze tokom 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 trebalo biti 0.
4. Postavljanje monitora performansi za SQL Server(Windows Vista / Server 2008 i noviji)
Prije svega, potrebno je kreirati kontejner za lakše upravljanje brojačima:
- Za Windows Vista / Server 2008 i novije verzije, u ovom odjeljku možete kreirati skupove kolekcionara podataka.
- Za Windows XP / Server 2003 i starije verzije, možete kreirati zapisnike brojača u sledeći odeljak.
4.1 Šta su skupovi za prikupljanje podataka?
Skupovi za prikupljanje podataka organiziraju brojače performansi, podatke o praćenju događaja i informacije o konfiguraciji sistema u jednu jedinicu za prikupljanje. Oni pružaju veću fleksibilnost od jednostavnih zapisnika brojača i omogućavaju automatizirano, planirano prikupljanje podataka za sveobuhvatno praćenje performansi SQL baze podataka.
4.2 Kreiranje skupa kolekcionara podataka
Kreirajte prilagođeni skup kolekcionara podataka za praćenje SQL Server brojači performansi:
- Otvorite Monitor Performansi
- Proširiti Setovi za prikupljanje podataka
- Desni klik Definisano od strane korisnika
- izabrati Novi -> Set za prikupljanje podataka
- Unesite opisni naziv (npr. „SQL Server Metrike performansi")
- izabrati Kreiraj ručno (napredno)
- kliknite sljedeći
- Check Kreiraj zapisnike podataka -> Brojač performansi
- kliknite sljedeći
- kliknite dodati za odabir brojača
- dodati željeni SQL Server i sistemski brojači.
- Set Interval uzorka
- Za rutinsko praćenje koristite 1 minutu (60 sekundi)
- Za aktivno rješavanje problema koristite 15-30 sekundi
- Izbjegavajte dugoročno pokretanje visokofrekventnih snimaka, jer mogu utjecati na performanse i generirati previše podataka.
- kliknite sljedeći
- Odaberite lokaciju za spremanje logova
- kliknite završiti, bit će kreiran novi skup kolekcionara podataka.
- Podrazumevano, novi skup kolekcionara podataka će NIJE automatski pokrenuti. Morate ga pronaći u lijevom panelu, pod performanse -> Setovi za prikupljanje podataka -> Definisano od strane korisnika -> Vaš sakupljač podataka, kliknite desnim tasterom miša na njega i odaberite Start
4.3 Ključni brojači koje treba dodati
- Memorija -> Dostupni MB
- Fizički disk -> Prosječno vrijeme čitanja s diska (sve instance osim _Ukupno)
- Fizički disk -> Prosječno vrijeme pisanja na disku (sve instance osim _Total)
- Fizički disk -> Broj čitanja diska/s (sve instance osim _Total)
- Fizički disk -> Broj pisanja na disk/s (sve instance osim _Total)
- Procesor -> % vremena procesora (sve instance osim _Total)
- SQLServer: Opšta 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
- Sistem -> Dužina reda procesora
4.4 Postavljanje uslova zaustavljanja
Konfigurišite uslove zaustavljanja kako biste sprečili neograničen rast podataka:
- Nakon što kreirate skup kolekcionara podataka, kliknite desnim tasterom miša na njega i izaberite svojstva
- kliknite Stop Condition tabulator
- omogućiti Ukupno trajanje
- Postavi trajanje na 1 dan (24 sata)
- kliknite OK da sačuvate
Ovo osigurava da zapisnik ne postane prevelik i da se automatski ponovo pokrene ako je planirano.
4.5 Planiranje prikupljanja podataka
Automatizirajte prikupljanje podataka kako biste osigurali dosljedno praćenje:
- Desnim klikom miša kliknite na skup za prikupljanje podataka i odaberite svojstva
- kliknite raspored tabulator
- kliknite dodati kreirati novi raspored
- Konfigurišite datum i vrijeme početka
- Postavite obrazac ponavljanja (npr. svakodnevno)
- kliknite OK da sačuvate raspored
Za automatsko pokretanje, konfigurirajte skup kolekcionara podataka da se pokrene kada se server pokrene kreiranjem okidača za pokretanje u Windows planeru zadataka.
5. Postavljanje monitora performansi za SQL Server(Windows XP / Server 2003 i ranije verzije)
Za Windows XP / Server 2003 i starije verzije, možete kreirati zapisnike brojača, koji vam omogućavaju da odaberete skup brojača performansi i periodično ih zapisujete u datoteku.
5.1 Kreiranje zapisnika brojača
Slijedite ove korake da biste kreirali novi zapisnik brojača:
- Otvorite Monitor Performansi
- Proširiti Zapisnici i upozorenja o performansama u lijevom oknu
- Desni klik Zapisi brojača
- izabrati Nove postavke dnevnika
- Nazovite dnevnik imenom vašeg servera baze podataka (npr. „ProductionSQL01“)
- kliknite OK za početak konfiguracije
Kreiranje odvojenih zapisnika brojača za svaki server omogućava vam testiranje performansi na pojedinačnim serverima bez istovremenog prikupljanja podataka za sve servere.
5.2 Dodavanje brojača performansi
Nakon kreiranja zapisnika brojača, dodajte specifične brojače performansi koje želite pratiti:
- kliknite Dodaj brojače dugme
- Promijenite naziv računara tako da ukazuje na vaš SQL Server primer
- pritisnuti štampanje za učitavanje dostupnih objekata performansi
- Odaberite objekt performansi iz padajućeg izbornika (npr. memorija)
- Odaberite određene brojače iz lista
- Odaberite instance ako je primjenjivo (npr. pojedinačne procesore ili diskove)
- kliknite dodati uključiti brojač
- Ponovite za sve željene brojače
- kliknite blizu kada završi
5.3 Konfigurisanje intervala uzorkovanja
Interval uzorkovanja određuje koliko često Performance Monitor prikuplja podatke. Konfigurišite odgovarajuće intervale na osnovu vaših potreba za praćenjem:
- U svojstvima zapisnika brojača pronađite Uzorak podataka svakih
- Postavite interval (zadano je 15 sekundi)
- Za praćenje osnovnih podataka, koristite intervale od 1 minute za dnevno prikupljanje podataka.
- Za rješavanje problema koristite intervale od 15-30 sekundi za kratke rafale
- kliknite OK to apply
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 Konfigurisanje datoteka zapisnika
Pravilna konfiguracija datoteke dnevnika osigurava efikasno i pristupačno pohranjivanje podataka:
- kliknite log datoteke kartica u svojstvima zapisnika brojača
- Promijeni vrstu datoteke dnevnika u Tekstualna datoteka (razdvojena zarezima) za jednostavan uvoz iz Excela
- kliknite konfigurisati
- Postavite putanju datoteke na namjensku lokaciju (npr. dijeljenu mapu PerformanceLogs)
- kliknite OK da potvrdi
Koristite mrežno dostupno dijeljenje za pohranu logova kako biste mogli daljinski pristupiti datotekama i dijeliti ih s drugim korisnicima.
5.5 Postavljanje akreditiva
Konfigurišite odgovarajuće akreditive kako bi Performance Monitor mogao pristupiti udaljenim serverima SQL Server slučajevi:
- U svojstvima zapisnika brojača pronađite Run As
- Unesite korisničko ime vaše domene u formatu: DOMENA\korisničko ime
- kliknite Postavite lozinku
- Unesite i potvrdite svoju lozinku
- kliknite OK da sačuvate
Ovo omogućava PerfMon servisu da prikuplja statistiku koristeći dozvole vaše domene umjesto vlastitih podataka.
6. Analiza podataka monitora performansi
6.1 Pregled datoteka zapisnika u Monitoru performansi
Monitor performansi može prikazati historijske podatke iz sačuvanih datoteka zapisnika:
- Otvorite Monitor Performansi
- U lijevom oknu kliknite Alati za nadzor -> Performance Monitor.
- Kliknite desnim tasterom miša bilo gdje u području grafikona
- izabrati svojstva
- kliknite izvor tabulator
- izabrati Datoteke dnevnika radio dugme
- kliknite dodati
- Idite do datoteke zapisnika (.blg ili .csv)
- Odaberite datoteku i kliknite otvoreno
- Koristiti Vremenski raspon klizač za odabir perioda koji želite analizirati
- kliknite OK da biste zatvorili dijalog Svojstva
- Kliknite na zelenu ikonu plusa da biste dodali brojače iz datoteke dnevnika
- Odaberite željene brojače za prikaz
- kliknite OK
Grafikon će sada prikazivati historijske podatke iz datoteke zapisnika. Koristite klizač Vremenski raspon u Svojstvima da biste suzili određene vremenske periode za detaljnu analizu.
6.2 Izvoz podataka u Excel
Excel pruža moćne mogućnosti analize za podatke brojača performansi:
- Otvorite Monitor performansi sa učitanom datotekom dnevnika
- Kliknite desnim tasterom miša bilo gdje u području grafikona
- izabrati Sačuvaj podatke kao
- Odaberite lokaciju za datoteku
- izabrati Tekstualna datoteka (razdvojena zarezima) (.csv) iz padajućeg menija
- kliknite Save
- Otvorite CSV datoteku u Excelu
Formatirajte izvezene podatke za bolju analizu:
- Izbrišite poluprazan red 2 i očistite ćeliju A1
- Formatirajte kolonu A kao datum/vrijeme
- Formatirajte numeričke kolone sa nula decimalnih mjesta i razdjelnikom hiljada
- Pronađi i zamijeni imena servera u zaglavljima (npr. zamijeni "\\NAMESERVERA" praznim poljem)
- Očistite nazive objekata u zaglavljima (npr. „Memorija“, „Fizički disk“, „Procesor“)
- 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 pažnju na ove indikatore:
- Dostupni MB: Trebalo bi konstantno 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 keš memorije bafera: Trebalo bi dostići ili premašiti 99%. Niže vrijednosti ukazuju na prekomjerno čitanje diska
- Dodjele memorije na čekanju: Uvijek treba biti 0. Bilo koja pozitivna vrijednost ukazuje na nedostatak memorije.
6.3.2 Analiza brojača CPU-a
Pokazatelji performansi CPU-a uključuju:
- % Vrijeme procesora: Dugotrajna upotreba preko 75% ukazuje na probleme s performansama. Skokovi do 100% su normalni, ali ne bi trebali potrajati.
- Dužina reda procesora: Vrijednosti iznad 1 ukazuju na opterećenje CPU-a. Provjerite Upravitelj zadataka da biste utvrdili koji procesi troše CPU.
- % Privilegovano vrijeme: Trebalo 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-20ms. Veće vrijednosti ukazuju na spore podsisteme diska.
- Dužina reda diska: Vrijednosti koje su konstantno 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:
- Umetnite 7 praznih redova na vrh vaše tabele
- Dodajte oznake u kolonu A: Prosjek, Medijana, Min, Maks, Standardno odstupanje
- U ćeliju B2 unesite: =AVERAGE(B9:B100) (prilagodite B100 na posljednji red podataka)
- U ćeliju B3 unesite: =MEDIAN(B9:B100)
- U ćeliju B4 unesite: =MIN(B9:B100)
- U ćeliju B5 unesite: =MAX(B9:B100)
- U ćeliju B6 unesite: =STDEV(B9:B100)
- Kopiraj formule u sve kolone brojača
- Odaberite ćeliju B9 i pritisnite Alt+W+F+Enter da biste zamrznuli okna
Ove statistike pomažu u identifikaciji trendova, odstupanja i normalnih operativnih raspona za svaki brojač.
7. Alat za analizu performansi logova (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štaje 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
7.2 Podešavanje PAL-a
Instalirajte PAL slijedeći ove korake:
- Preuzmite PAL instalacijsku datoteku sa GitHub-a
- Pokrenite instalater
- kliknite sljedeći na ekranu dobrodošlice
- Pregledajte i prihvatite instalacijski direktorij
- kliknite sljedeći nastaviti
- kliknite Instaliraj za početak instalacije
- Sačekajte da se instalacija završi
- kliknite završiti
7.3 Obrada log datoteka pomoću PAL-a
Analizirajte zapisnike Performance Monitora pomoću PAL-a:
- Pokrenite PAL iz menija Start ili instalacijskog direktorija
- kliknite Zapisnik brojača tabulator
- kliknite Pregled da biste odabrali svoju .blg datoteku
- Idite do datoteke zapisnika vašeg Monitora performansi
- kliknite otvoreno
- kliknite Datoteka praga tabulator
- Odaberite datoteku praga iz padajućeg izbornika (npr. "SQL Server 2016 ”)
- kliknite pitanja tabulator
- Odgovorite na pitanja o konfiguraciji vašeg sistema
- Navedite da li je vaš SQL Server je OLTP ili skladište podataka
- Unesite ukupnu dostupnu RAM memoriju
- kliknite Izlazne opcije tabulator
- Odaberite izlazni direktorij za HTML izvještaj
- Check HTML izlazni format
- kliknite izvršiti tabulator
- Pregledajte svoje odabire
- Check Započni izvršenje sada
- kliknite završiti
7.4 Analiza PAL izvještaja
Nakon što PAL završi analizu, generira HTML izvještaj koji 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
- Historijski trendovi i obrasci
Izvještaj 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 Alat
8.1.1 SQL Server Monitor Monitor
SQL Server Monitor Monitor prikazuje informacije u realnom vremenu o SQL Server procesi i performanse:
- otvoreno SQL Server Management Studio (SSMS) i povezivanje s instancom vašeg servera
- Kliknite desnim tasterom miša na ime servera u Object Exploreru
- izabrati Monitor Monitor
Monitor aktivnosti prikazuje procese, čekanje resursa, ulazno/izlazne operacije datoteka i nedavne skupe upite. Pruža brz uvid u trenutnu aktivnost baze podataka, ali ne pohranjuje historijske podatke.
8.1.2 SQL Server Nadzorna ploča performansi
SQL Server Management Studio uključuje ugrađene izvještaje o performansama:
- In SQL Server Management Studio (SSMS), kliknite desnim tasterom miša na SQL Server instanca u Object Exploreru
- izabrati Izvještaji -> Standardni izvještaji
- Odaberite između dostupnih izvještaja kao što su Nadzorna ploča performansi
Kontrolna ploča performansi pruža vizualni uvid u SQL Server performanse instance, uključujući iskorištenost CPU-a sistema, trenutne zahtjeve na čekanju i metrike performansi. Pristupite im putem menija Standardni izvještaji.
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.
Početi SQL Server Profiler:
- In SQL Server Management Studio, kliknite Alat -> SQL Server Profiler
Profiler stvara značajno opterećenje performansi, stoga ga koristite razumno i po mogućnosti tokom perioda van vršnih sati. U većini scenarija, Extended Events pruža bolje performanse uz manji utjecaj.
8.1.4 Prošireni događaji
Extended Events je lagani sistem za praćenje performansi ugrađen u SQL ServerZamjenjuje SQL Server Profiler sa boljim performansama i nižim režijskim troškovima.
Ključne značajke uključuju:
- Detaljno praćenje specifičnih događaja
- Minimalni učinak na performanse
- Prilagodljive sesije događaja
- Integracija sa SSMS-om i drugim alatima
- Podrška za kompleksno filtriranje i agregaciju
Kreirajte proširene sesije događaja putem SSMS-a:
- In Object Explorer, proširite svoj server i idite na Upravljanje -> Prošireni događaji -> Sesije
- Desnim tasterom miša kliknite na Sessions i odaberite Čarobnjak za novu sesiju
- Slijedite upute za početak nove sesije.
8.1.5 Dinamički upravljački prikazi (DMV)
DMV-ovi otkrivaju detaljne informacije o stanju servera za praćenje ispravnosti, 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 utiču na performanse servera
- sys.dm_os_performance_counters: SQL Server podaci brojača performansi
- sys.dm_exec_requests: Trenutno izvršavamo zahtjeve
- sys.dm_exec_sessions: Aktivne korisničke sesije
Upitite ove prikaze koristeći T-SQL kako biste pristupili podacima o performansama u stvarnom vremenu i historijskim 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 kontrolne ploče, detaljne mogućnosti izvještavanja i integraciju s drugim Redgate alatima.
SolarWinds SQL Server Alat za praćenje
The SolarWinds SQL Server Alat za nadzor, poznat i kao SQL Sentry, dizajniran je za dijagnosticiranje, rješavanje i sprječavanje ozbiljnih problema s performansama SQL Server.
IDERA's SQL Server Alat za praćenje performansi
IDERA SQL Diagnostic Manager je moćan SQL Server Alat za praćenje performansi dizajniran da pomogne u proaktivnom praćenju performansi, dijagnostici i podešavanju.
SQL Monitoring menadžera aplikacija
Applications Manager nudi Microsoft SQL Server Alat za praćenje koji pruža korisna IT rješenja. Dizajniran je da nadgleda performanse SQL baza podataka, dok istovremeno identifikuje greške i rješava probleme koji mogu dovesti do zastoja u radu organizacije.
8.3 Alati za nadzor otvorenog koda
DBA Dash
DBA Dash je besplatan 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 realno vrijeme SQL Server Praćenje s granulacijom od 5 sekundi za hvatanje skokova opterećenja. Podržava Grafanu za nadzorne ploče u stvarnom vremenu i Power BI za detaljnu analizu. Alat pruža široke mogućnosti konfiguracije, nulte zahtjeve za održavanjem i neograničenu skalabilnost.
Opserver
Razvijen od strane Stack Exchange-a, Opserver prati više sistema, uključujući SQL Server, Redis i Elasticsearch. Pruža pregled "svih servera" za statistiku CPU-a, memorije, mreže i hardvera u vašoj infrastrukturi.
sp_Ko je aktivan
sp_WhoIsActive je sveobuhvatna pohranjena procedura za praćenje aktivnosti koju je kreirao Adam Machanic. Radi sa svim SQL Server verzije od 2005. do trenutnih izdanja i široko se koristi od strane SQL Server DBA za praćenje aktivnosti u realnom vremenu.
Da biste koristili sp_WhoIsActive, preuzmite ga sa http://whoisactive.com/, instalirajte ga u svoju bazu podataka i izvršite:
EXEC sp_WhoIsActive
Procedura prikazuje trenutno izvršavane upite, informacije o čekanju, detalje blokiranja i potrošnju resursa.
9. Najbolje prakse za SQL Server Performance Monitor
9.1 Utvrđivanje osnovnih vrijednosti performansi
Osnovne vrijednosti performansi uspostavljaju normalne operativne parametre za vaš SQL Server okruženje. Bez osnovnih vrijednosti, ne možete utvrditi da li trenutne metrike ukazuju na probleme ili predstavljaju tipično ponašanje.
Kreirajte osnovne linije tako što ćete:
- Prikupljanje podataka o performansama tokom normalnog rada u trajanju od najmanje jedne sedmice
- Prikupljanje metrika tokom vršnih i vanvršnih sati
- Dokumentovanje tipičnih vrijednosti za brojače ključeva
- Bilježenje sezonskih varijacija ako je primjenjivo
- Pohranjivanje osnovnih podataka za poređenje s budućim metrikama
Ažurirajte osnovne vrijednosti kvartalno ili nakon značajnih promjena infrastrukture, ažuriranja aplikacija ili modifikacija baze podataka.
9.2 Postavljanje odgovarajućih pragova upozorenja
Konfigurišite inteligentne pragove da biste primali značajna upozorenja bez preopterećenja obavještenjima:
- Memorijski grantovi na čekanju > 0 označava pritisak na memoriju
- Dužina reda čekanja procesora > 2 po jezgru ukazuje na usko grlo procesora
- Vrijeme čitanja ili pisanja na disku > 20 ms ukazuje na spor ulazno/izlazni signal
- Blokirani procesi > 5 signala problema sa sukobom interesa
- Očekivano trajanje stranice < 300 sekundi ukazuje na pritisak memorije
Prilagodite pragove na osnovu vaših osnovnih podataka i specifičnih karakteristika radnog opterećenja. Koristite adaptivne pragove koji uzimaju u obzir normalne varijacije u vašem okruženju.
9.3 Redovni pregled i analiza podataka
Zakažite redovne preglede učinka kako biste identifikovali trendove i probleme koji se pojavljuju:
- Dnevno: Pregledajte metrike visokog nivoa i nedavna upozorenja
- Sedmično: Provesti detaljnu analizu trendova performansi
- Mjesečno: Generirajte sveobuhvatne izvještaje i uporedite ih s osnovnim vrijednostima
- Tromjesečno: Pregled planiranja kapaciteta i dugoročnih trendova
Dokumentujte nalaze i pratite poboljšanja performansi tokom vremena.
9.4 Balansiranje troškova prać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
- Koristite intervale od 15 sekundi samo za aktivno rješavanje problema
- Ograničite trajanje skupa kolekcionara podataka kako biste izbjegli prekomjernu količinu podataka
- Čuvajte logove na odvojenim diskovima 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 konfigurisan, obično ispod 2% sistemskih resursa.
9.5 Dugoročno čuvanje podataka
Zadržite podatke o performansama 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 dnevnika kako biste uštedjeli prostor
- Dokumentujte sve značajne događaje ili promjene koje utiču na performanse
S obzirom na relativno malu veličinu podataka brojača performansi, njihovo čuvanje na neodređeno vrijeme često je izvodljivo i vrijedno za dugoročnu analizu.
9.6 Integracija s DevOps praksama
Uključite praćenje performansi baze podataka u CI/CD kanale:
- Uključite metrike performansi baze podataka u validaciju implementacije
- Automatizirajte testiranje performansi za nova izdanja
- Provjerite da li promjene koda negativno utiču na performanse
- Kreirajte referentne vrijednosti performansi za svako izdanje
- Integrirajte upozorenja o nadzoru sa sistemima za upravljanje incidentima
10. Rješavanje uobičajenih problema s performansama
10.1 Identifikacija uskih grla CPU-a
Uska grla CPU-a manifestiraju se kao sporo vrijeme odgovora na upite i visoka iskorištenost procesora. Koristite ove korake za dijagnosticiranje problema s CPU-om:
- Provjerite brojač dužine reda čekanja procesora. Vrijednosti iznad 2 po jezgru ukazuju na opterećenje procesora.
- Pregledajte % vremena procesora. Trajne vrijednosti preko 75% ukazuju na usko grlo procesora.
- Udaljena radna površina za SQL Server
- Otvori Upravitelj zadataka (Ctrl+Shift+Esc)
- kliknite procesi tabulator
- Check Prikaži procese svih korisnika
- kliknite CPU zaglavlje kolone za sortiranje po korištenju CPU-a
- Identifikujte koji procesi troše CPU resurse
Ako ne-SQL Server Aplikacije troše značajno CPU, uklonite ih sa servera baze podataka. Ako sqlservr.exe koristi puno CPU-a, istražite to koristeći ove metode:
- Provjerite SQL kompilacije/sek i SQL rekompilacije/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 neefikasne operacije
- Razmislite o dodavanju indeksa kako biste smanjili skeniranje tabela
10.2 Dijagnosticiranje problema s pamćenjem
Problemi s pamćenjem značajno utiču SQL Server performanse. Dijagnosticirajte probleme s memorijom pomoću ovih indikatora:
Dostupne kapi memorije
Ako Dostupni MB-ovi stalno padaju ispod 100 MB, operativni sistem se suočava sa nedostatkom memorije. Windows može preskočiti stranicu. SQL Server memorije na disk, što uzrokuje smanjenje performansi.
Nizak očekivani životni vijek stranice
Očekivano trajanje stranice ispod 300 sekundi ukazuje na visok promet keš memorije. To ukazuje ili na nedovoljnu alokaciju memorije ili na prekomjerni pritisak na memoriju od strane upita.
Nizak omjer pogodaka keš memorije bafera
Omjer pogodaka keš memorije bafera 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š uvijek se zagrijava nakon ponovnog pokretanja.
Memorijski grantovi na čekanju
Bilo koja vrijednost iznad 0 za Memory Grants Pending (Dodjele memorije na čekanju) ukazuje na to da upiti čekaju na dodjelu memorije. Ovo predstavlja kritičan nedostatak memorije koji zahtijeva hitnu pažnju.
Za rješavanje problema s memorijom:
- konfigurisati SQL Server postavka maksimalne memorije kako bi se ostavilo dovoljno RAM-a za operativni sistem (obično 4-8 GB, ovisno o veličini servera)
- Omogućite dozvolu "Zaključaj stranice u memoriji" za SQL Server servisni račun
- Dodajte više fizičke RAM memorije na server ako pritisak na memoriju i dalje postoji
- Identifikujte i optimizujte upite koji intenzivno koriste memoriju
10.3 Rješavanje problema s ulazno/izlaznim operacijama diska
Diskovni I/O često postaje glavno usko grlo performansi u sistemima baza podataka. Dijagnosticirajte probleme s diskom koristeći ove metode:
Velika dužina reda diska
Dužina reda diska konstantno iznad 2 (ili 2 po disku za RAID) ukazuje na to da podsistem diska ne može pratiti I/O zahtjeve. To stvara zaostatak u operacijama koje čekaju.
Prekomjerna latencija diska
Vrijednosti prosječnog vremena diska u sekundama/čitanja i prosječnog vremena diska u sekundama/pisanja iznad 10-20 ms ukazuju na spor odziv diska. Diskovi za zapisivanje transakcija zahtijevaju posebno brze performanse, idealno ispod 5 ms za pisanje.
Visok % vremena diska
Stalna vrijednost % vremena diska iznad 85% ukazuje na zasićenost diska. Disk većinu vremena provodi obrađujući I/O zahtjeve s malo preostalog kapaciteta u stanju mirovanja.
Prije rješavanja problema s diskom, provjerite da li se radi o simptomima problema s memorijom. Nedovoljno memorijskih prisila. SQL Server da pročita više podataka s diska, vještački napuhujući metrike diska.
Da biste riješili probleme s originalnim ulazno/izlaznim operacijama diska:
- Nadogradite na brže diskove (SSD 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 performansama
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
- Čekanje zaključavanja/sek: Broj zahtjeva za zaključavanje koji zahtijevaju čekanje
- Prosječno vrijeme čekanja: Prosječno trajanje čekanja na zaključavanje
Da biste istražili blokiranje:
- Otvorite Monitor aktivnosti u SSMS-u
- proširite procesi sekcija
- Tražite procese sa vrijednostima različitim od nule Blokirao/la vrijednosti
- Identifikujte ID blokirajuće sesije
- Pregledajte upite koji uzrokuju blokiranje
Koristite sp_WhoIsActive za detaljniju analizu blokiranja. Prekomjerni unosi wait_info često ukazuju na sukob tempdb-a ili probleme s blokiranjem.
Da biste smanjili blokiranje:
- Minimizirajte trajanje transakcije
- Koristite odgovarajuće nivoe izolacije
- Dodajte indekse da biste smanjili trajanje zaključavanja
- Razmotrite izolaciju READ_COMMITTED_SNAPSHOT
- Pregledajte i optimizirajte dugotrajne upite
10.5 Problemi s performansama upita
Identifikacija skupih upita je ključna za praćenje performansi SQL-a. Koristite ove metode za pronalaženje problematičnih upita:
Korišćenje Monitora aktivnosti
- U SSMS-u kliknite desnim tasterom miša na ime servera
- izabrati Monitor Monitor
- Proširiti Nedavni skupi upiti
- Pregledajte upite s visokim CPU-om, trajanjem ili logičkim čitanjima
Korištenje DMV-ova
Upitajte sys.dm_exec_query_stats da biste identifikovali upite 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
- U SSMS-u otvorite novi prozor za upit
- kliknite Prikaži procijenjeni plan izvršenja (Ctrl+L) ili Uključite stvarni plan izvršenja (Ctrl+M)
- Izvršite svoj upit
- Pregledajte plan izvršenja za skupe operacije
- Tražite skeniranje tabela, skeniranje indeksa ili skupe operacije
Optimizirajte upite putem:
- Dodavanje odgovarajućih indeksa
- Prepisivanje upita radi izbjegavanja skupih operacija
- Ažuriranje statistike
- Korištenje specifičnih naziva kolona 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 sistemske kvarove. Brzo otkrivanje i rješavanje oštećenja ključno je za održavanje zdravlja baze podataka.
Indikatori korupcije baze podataka
Obratite pažnju na ove znakove potencijalne korupcije:
- Poruke o grešci u SQL Server zapisnik grešaka (greška 823, 824 ili 825)
- Neočekivane greške aplikacije prilikom pristupa određenim tabelama
- Sporo izvršavanje upita na prethodno brzim upitima
- SQL Server padovi sistema ili neočekivana ponovna pokretanja
- Sumnjive stranice koje se pojavljuju u tabeli msdb.dbo.suspect_pages
Korištenje DBCC CHECKDB za detekciju
DBCC CHECKDB je primarni alat za otkrivanje korupcije u bazi podataka. Redovno ga pokrećite kako biste probleme otkrili na vrijeme.
Praćenje sumnjivih stranica
SQL Server automatski zapisuje 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 redovi ukazuju na probleme s korupcijom koji zahtijevaju hitnu pažnju.
Strategije za sprječavanje korupcije
- Omogući verifikaciju stranice pomoću opcije CHECKSUM
- Redovno održavajte sigurnosne kopije baze podataka
- Koristite pouzdan hardver sa ispravljanjem grešaka
- Pratite stanje diska pomoću alata proizvođača
- Zakažite redovna izvršavanja DBCC CHECKDB-a
- zadržati SQL Server ažurirano s najnovijim zakrpama
Opcije oporavka i popravka
Ako se otkriju greške, možete isprobati ugrađeni alat DBCC CHECKDB da ih popravite. Ako ne uspije, koristite alate trećih strana kao što su DataNumen SQL Recovery koji se može nositi s teškim oblicima korupcije.
11. Napredne tehnike praćenja
11.1 Praćenje skladišta upita
Skladište upita, predstavljeno u SQL Server 2016, automatski prikuplja podatke o performansama upita. Pruža vrijedne uvide u ponašanje upita, planove izvršavanja i trendove performansi.
Omogućavanje pohrane upita
- U SSMS Object Exploreru, kliknite desnim tasterom miša na bazu podataka
- izabrati svojstva
- kliknite Prodavnica upita Strana
- In Način rada (zahtijevano), izaberite Pročitajte Pisanje
- Konfigurišite dodatne postavke po potrebi
- kliknite OK
Praćenje performansi upita
Pristupite izvještajima skladišta upita putem Object Explorera:
- Proširite bazu podataka u Object Exploreru
- Proširiti Prodavnica upita
- Odaberite između dostupnih izvještaja:
- Regresirani upiti
- Ukupna potrošnja resursa
- Najčešći upiti koji troše resurse
- Upiti s prisilnim planovima
- Praćeni upiti
Detekcija regresije plana
Query Store automatski detektuje kada se planovi izvršavanja upita promijene i performanse se smanje. Pregledajte izvještaj o regresiranim upitima kako biste identificirali upite na koje utiču promjene plana.
Upravljanje prisilnim planom
Kada Query Store identifikuje bolji plan izvršenja, prisilno SQL Server da ga koristite:
- Otvorite upit u skladištu upita
- Kliknite desnim tasterom miša na željeni plan
- izabrati Plan snaga
Ovo odmah poboljšava performanse bez potrebe za izmjenama koda.
11.2 Praćenje održavanja indeksa
Fragmentacija indeksa s vremenom smanjuje performanse upita. Redovno 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 tokom perioda van vršnih sati jer može zahtijevati mnogo 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 odluke o obnovi
Odaberite operacije održavanja indeksa na osnovu nivoa 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 kreira efikasne planove izvršenja. Zastarjela statistika dovodi do loših performansi upita.
Automatsko obnavljanje statistike
Omogućite automatsko ažuriranje 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
Kreirajte prilagođena rješenja za praćenje performansi direktnim upitom sys.dm_os_performance_counters i pohranjivanjem rezultata u tabele.
Kreiranje 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
Direktno 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 historijskih podataka
Kreirajte tabelu za pohranjivanje metrika performansi tokom 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 redom po vremenu uzorkovanja i jednom kolonom po brojaču. Ovo smanjuje prostor za pohranu i poboljšava performanse upita u usporedbi s pohranjivanjem jednog reda po brojaču po uzorku.
11.5 Nadgledanje više servera
Za okruženja sa više SQL Server instance, implementirajte centralizovani nadzor.
Centralizirani pristup nadzoru
- Kreirajte namjensku bazu podataka za praćenje na zasebnom serveru
- Prikupljajte podatke sa svih servera u centralno spremište
- upotreba SQL Server Poslovi agenta za pokretanje skripti za prikupljanje
- Implementirajte prikupljanje brojača performansi dostupnih putem mreže
Udaljeno nadgledanje servera
Konfigurišite Monitor performansi da prikuplja podatke sa udaljenih servera navođenjem imena servera prilikom dodavanja brojača. Osigurajte da pravila zaštitnog zida dozvoljavaju promet Monitora performansi.
Izvještavanje na više servera
Kreirajte izvještaje koji upoređuju performanse na više servera kako biste identifikovali izuzetke i neravnoteže kapaciteta.
12. Monitoring SQL Server u cloud okruženjima
12.1 Praćenje Azure SQL baze podataka
Azure SQL baza podataka pruža ugrađene mogućnosti praćenja koje se razlikuju od onih na lokalnoj razini. 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šćenje skladišta
- Statistika veze
- Zastoji i vremenska ograničenja
Pristupite ovim metrikama putem Azure Portala ili Azure Monitor API-ja.
Ugrađene funkcije 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 dijagnostika
Uvid u performanse upita
Ova funkcija pruža vizualizaciju upita koji najčešće troše resurse, analizu trajanja upita i historijske trendove performansi. Pristupite joj putem Azure portala u okviru vašeg SQL Database resursa.
12.2 Alati za nadzor u oblaku
Cloud platforme nude nativna 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 obuhvataju lokalnu i cloud platformu, koristite alate koji podržavaju oba okruženja, kao što su Redgate SQL Monitor, 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 alokacije resursa
Pružatelji usluga u oblaku koriste različite metode alokacije resursa (DTU-ove, vCores, serverless) koje utječu na način na koji interpretirate metrike performansi. Razumite ograničenja i karakteristike vašeg servisnog sloja.
Razmatranja o skaliranju
Cloud okruženja nude mogućnosti dinamičkog skaliranja. Pratite iskorištenost resursa kako biste odredili kada treba povećati ili smanjiti skaliranje. Mnoge cloud platforme pružaju automatsko skaliranje na osnovu pragova performansi.
13. Automatizacija praćenja performansi
13.1 SQL Server Poslovi agenta
Automatizirajte prikupljanje podataka pomoću SQL Server Agentski poslovi za dosljedno praćenje bez ručne intervencije.
Planirano prikupljanje podataka
- U SSMS-u, proširite SQL Server agent
- Desni klik Posao i izaberite Novi posao
- Nazovite posao (npr. „Prikupljanje metrika performansi“)
- kliknite koraci i dodajte novi korak
- Postavi vrstu na Transact-SQL skripta
- Unesite skriptu za prikupljanje podataka
- kliknite rasporedi i dodajte raspored
- Konfigurišite učestalost (npr. svakih 5 minuta)
- kliknite OK stvoriti posao
Automatizirano izvještavanje
Kreirajte poslove koji generiraju izvještaje o učinku i šalju ih e-poštom:
- Kreirajte pohranjenu proceduru koja generira izvještaje
- Koristite Database Mail za slanje izvještaja putem e-pošte
- Planirajte posao da se izvršava svakodnevno ili sedmično
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 sa udaljenih servera:
$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"
Automatsko obavještavanje
Kreirajte 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 Kreiranje nadzornih ploča
Vizualizirajte podatke o performansama pomoću interaktivnih kontrolnih ploča za bolji uvid.
Power BI integracija
- Povežite Power BI sa svojim tabelama podataka o performansama
- Kreirajte vizualizacije za ključne metrike
- Dodajte slicere za vremenski raspon i odabir servera
- Objavljivanje kontrolnih ploča u Power BI servisu
- Konfigurišite rasporede automatskog osvježavanja
Kreiranje kontrolne table u realnom vremenu
Koristite alate poput Grafane ili prilagođene web aplikacije za kreiranje nadzornih ploča u stvarnom vremenu koje direktno ispituju DMV-ove i brojače performansi.
Vizualizacija historijskih trendova
Napravite linijske grafikone koji prikazuju trendove tokom vremena za:
- Korišćenje CPU-a
- Upotreba memorije
- Disk I/O
- Performanse upita
- Broj konekcija
14. Studije slučaja i praktični primjeri
14.1 Studija slučaja: Rješavanje pritiska pamćenja
Identifikacija simptoma
Produkcija SQL Server iskusio je sporo vrijeme odgovora na upite tokom vršnih sati. Korisnici su se žalili na isteke vremena aplikacije i smanjene performanse.
Counter Analysis
Podaci Performance Monitora otkriveni su:
- Očekivano trajanje stranice smanjeno je na 50 sekundi (normalno: >300)
- Omjer pogodaka u keš memoriji pao je na 85% (normalno: >99%)
- Vrijednosti na čekanju za memorijske grantove često su prikazivale 5-10.
- Broj čitanja fizičkog diska u sekundi značajno je porastao
Resolution Steps
- Provjereno SQL Server postavka maksimalne memorije – otkriveno je da je postavljena na zadano (neograničeno)
- Pregled ukupne memorije servera u odnosu na memoriju ciljnog servera – pokazao je značajnu razliku
- Konfigurisana maksimalna memorija servera tako da ostane 8 GB za operativni sistem
- Omogućena je dozvola "Zaključaj stranice u memoriji" za SQL Server servisni račun
- Dodato 32 GB dodatne RAM memorije na server
- Praćene performanse tokom jedne sedmice – Očekivano trajanje stranice stabilizovano iznad 500 sekundi
Rezultat: Vrijeme odgovora na upite poboljšano je za 60%, pritužbe korisnika su prestale, a performanse aplikacije su se vratile 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% tokom radnog vremena, što je uzrokovalo spore performanse aplikacija i frustracije korisnika.
Counter Analysis
Praćenje performansi je otkrilo:
- Prosječno vrijeme procesora je bilo 92% s čestim skokovima do 100%
- Dužina reda procesora konstantno iznad 4 (server je imao 8 jezgara)
- SQL kompilacije/s je bilo 25% od paketnih zahtjeva/s (trebalo bi biti <10%)
- SQL rekompilacije/s su bile 15% od paketnih zahtjeva/s
Resolution Steps
- Korišteni su DMV-ovi za identifikaciju upita koji najviše troše CPU
- Analizirani planovi izvršenja za identifikovane upite
- Otkriveno više skeniranja tabela na velikim tabelama zbog nedostajućih indeksa
- Kreirao odgovarajuće indekse na osnovu preporuka plana izvršenja
- Identifikovan je dinamički SQL koji uzrokuje prekomjerne kompilacije
- Izmijenjen kod aplikacije za korištenje parametriziranih upita
- Implementirani vodič za plan za problematične pohranjene procedure
- Ažurirana statistika o tabelama koje se često koriste
Rezultat: Iskorištenost CPU-a pala je na prosječnih 45% tokom radnog vremena. Vrijeme izvršavanja upita poboljšano je za 70%. Brzina odziva aplikacije značajno se poboljšala.
14.3 Studija slučaja: Rješavanje uskih grla u radu diskovnog ulaza/izlaza
Identifikacija simptoma
Korisnici su prijavili izuzetno spor odziv aplikacije tokom operacija učitavanja podataka i večernje grupne obrade.
Counter Analysis
Podaci o performansama su pokazali:
- Prosječno vrijeme pisanja na disku premašilo je 45 ms na disku dnevnika transakcija
- Prosječna dužina reda čekanja na disku je 12 na disku s datotekama
- % vremena diska ostalo je iznad 95% satima tokom batch poslova
- Broj pisanja stranica/sek je bio izuzetno visok
Resolution Steps
- Provjerene postavke memorije su bile ispravne – nisu pronađeni problemi s memorijom
- Analizirana konfiguracija diska – otkrivene su sve datoteke na istom setu vretena
- Odvojeni zapisnici transakcija na namjenske brze SSD diskove
- Tempdb je premješten na odvojene SSD diskove
- Implementirano više tempdb datoteka (jedna po jezgru)
- Nadograđeni diskovi za datoteke podataka na RAID 10 SSD konfiguraciju
- Optimizovani paketni poslovi za korištenje manjih paketa transakcija
- Dodani su indeksi za smanjenje nepotrebnog skeniranja tabela tokom serijskih operacija.
Rezultat: Prosječno vrijeme pisanja na disku u sekundama palo je na 3 ms. Prosječna dužina reda čekanja na disku bila je ispod 1. Vrijeme završetka paketnih zadataka smanjeno je za 75%.
15. Budući trendovi u SQL Server nadgledanje
15.1 Integracija umjetne inteligencije i strojnog učenja
Umjetna inteligencija i mašinsko učenje se transformišu SQL Server monitor performansi.
Prediktivna analitika
Modeli mašinskog učenja predviđaju buduće potrebe za resursima na osnovu historijskih podataka. Ovi sistemi mogu predvidjeti:
- Kada će kapacitet skladištenja biti iscrpljen
- Očekivani zahtjevi za CPU i memorijom tokom vršnih perioda
- Smanjenje performansi upita prije nego što utiče na korisnike
- Optimalna vremena za operacije održavanja
Otkrivanje anomalija
Alati zasnovani na vještačkoj inteligenciji automatski otkrivaju neobične obrasce u metrikama performansi. Oni identificiraju anomalije koje bi ljudski administratori mogli propustiti i razlikuju normalne varijacije od stvarnih problema.
Automatska sanacija
Sistemi za samoobnavljanje automatski rješavaju uobičajene probleme kada se otkriju:
- Ponovo pokrenite usluge koje su zaustavljene
- Preraspodijelite resurse tokom vršnog opterećenja
- Primijenite hitne ispravke za poznate probleme
- Automatski ponovo izgradi fragmentirane indekse
15.2 Evolucija praćenja zasnovanog na 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
- Baze podataka hostovane u oblaku
- Hibridna okruženja
- Performanse aplikacije
- Metrike infrastrukture
Trendovi uočljivosti
Prelazak sa praćenja na opservabilnost naglašava:
- Razumijevanje ponašanja sistema na osnovu izlaza
- Korelacija metrika, logova i tragova
- Duboki uvidi u distribuirane sisteme
- Dijagnoza problema u realnom vremenu
15.3 Samoobnavljajući sistemi 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 kreiranje i brisanje indeksa na osnovu radnog opterećenja
- Podešavanje postavki konfiguracije za optimalne performanse
- Transparentno prepisivanje neefikasnih upita
- Dinamičko upravljanje alokacijom resursa
Inteligentno podešavanje
Napredni sistemi ć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 osnovnih praksi praćenja
efektivan SQL Server Monitor performansi zahtijeva sveobuhvatan pristup koji kombinuje alate, tehnike i najbolje prakse.
Sažetak kritičnih brojača
Fokusirajte napore praćenja na ovim bitnim brojačima:
- Memorija: Očekivano trajanje stranice, Omjer pogodaka predmemorije međuspremnika, Memorijske dodjele na čekanju
- CPU: % procesorsko vrijeme, dužina reda čekanja procesora
- Disk: Prosječno vrijeme diska u sekundama/čitanje i pisanje, dužina reda čekanja na disku
- SQL ServerGrupni zahtjevi/sek, Kompilacije/sek, Korisničke veze
Sažetak najbolje prakse
- Utvrdite osnovne linije tokom normalnog rada
- Postavite inteligentne pragove upozorenja na osnovu osnovnih vrijednosti
- Redovno pregledajte podatke o učinku
- Nadređeni troškovi praćenja balansa s granulacijom podataka
- Zadržite dugoročne podatke za analizu trendova
- Koristite odgovarajuće alate za svaki scenario praćenja
16.2 Pristup kontinuiranog poboljšanja
SQL Server Monitor performansi nije jednokratna aktivnost, već kontinuirani proces koji zahtijeva stalno usavršavanje.
Redovni ciklusi pregleda
- Dnevno: Provjerite upozorenja i trenutne performanse
- Sedmično: Pregledajte trendove i identifikujte probleme koji se pojavljuju
- Mjesečno: Analizirajte dugoročne obrasce i potrebe za kapacitetima
- Tromjesečno: Ažuriranje osnovnih vrijednosti i pregled efikasnosti praćenja
Održavanje ažurnosti s alatima
Redovno ažurirajte alate i tehnike praćenja:
- Procijenite nove funkcije praćenja u SQL Server ažuriranja
- Testiranje novih alata trećih strana
- Prisustvujte obukama i konferencijama
- Učestvujte u SQL Server forumi zajednice
- Podijelite znanje sa članovima tima
16.3 sljedećih koraka
Provesti SQL Server sistematski pratite performanse:
Implementacioni putokaz
- Sedmica 1: Postavite Monitor performansi sa osnovnim brojačima
- Sedmica 2: Kreirajte skupove kolekcionara podataka za automatizirano prikupljanje
- Sedmica 3: Utvrdite osnovne linije tokom normalnog rada
- Sedmica 4: Konfigurišite upozorenja za kritične pragove
- Mjesec 2: Implementirajte dodatne alate za praćenje (DMV-ovi, prošireni događaji)
- Mjesec 3: Razvijte prilagođene kontrolne ploče i izvještaje
- U toku: Usavršite praćenje na osnovu 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 Šta je najvažnije SQL Server brojače performansi za praćenje?
Najkritičnije SQL Server Brojači performansi uključuju:
- Memorija: Očekivano trajanje stranice (treba biti >300 sekundi) i Omjer pogodaka predmemorije međuspremnika (treba biti >99%)
- CPU: % procesorskog vremena (trajne vrijednosti <75%) i dužina reda čekanja procesora (treba biti <2 po jezgru)
- Disk: Prosječno vrijeme diska u sekundama/čitanje i pisanje (treba biti <10-20 ms) i dužina reda čekanja na disku (treba biti <2 po disku)
- SQL ServerGrupni zahtjevi/sek, SQL kompilacije/sek i Memorijske dodjele na čekanju (treba biti 0)
Ovi brojači pružaju sveobuhvatan uvid u stanje sistema i pomažu u brzom identifikovanju uskih grla.
17.2 Koliko često trebam prikupljati podatke o performansama?
Učestalost prikupljanja podataka zavisi od vaših ciljeva praćenja:
- Praćenje osnovnih vrijednosti: Svakih 1 minut (60 sekundi)
- Aktivno rješavanje problema: Svakih 15-30 sekundi u kratkim periodima
- Dugoročni trendovi: Svakih 5 minuta
Izbjegavajte kontinuirano prikupljanje podataka visoke učestalosti jer to može utjecati na performanse i generirati prekomjernu količinu podataka. Koristite duže 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:
Monitor performansi:
- Prati sistem 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 tokom vremena
SQL Server Profiler:
- Tragovi pojedinca SQL Server događaji i upiti
- Snima 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 Performance Monitor za cjelokupno praćenje sistema i Extended Events (ne Profiler) za detaljnu analizu na nivou upita.
17.4 Uticaj monitora performansi Can SQL Server performanse?
Kada je pravilno konfigurisan, Performance Monitor ima minimalan uticaj 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 prikupljanje visokofrekventnih podataka generira velike datoteke zapisnika
Da biste smanjili uticaj:
- Pratite samo neophodne brojače
- Koristite odgovarajuće intervale uzorkovanja (60 sekundi za rutinsko praćenje)
- Čuvajte logove na diskovima odvojeno od datoteka baze podataka
- Zakažite praćenje koje zahtijeva mnogo resursa tokom perioda van vršnih sati
17.5 Koliko dugo trebam čuvati podatke o praćenju performansi?
Zadržavanje podataka zavisi od vaših analitičkih potreba i kapaciteta skladištenja:
- minimum: 3 mjeseca za rješavanje nedavnih problema
- Preporučena: 1-2 godine za planiranje kapaciteta i analizu trendova
- Optimalno: Neograničeno ako skladištenje dozvoljava, jer historijski podaci s vremenom postaju vrijedniji
Podaci brojača performansi se dobro komprimiraju i zauzimaju relativno malo prostora. Razmislite o arhiviranju starijih podataka u zasebnu pohranu umjesto brisanja. Mnoge organizacije smatraju da se godine historijskih podataka pokazuju neprocjenjivim 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 upozoravanje:
- Dodjele memorije na čekanju: Upozorenje kada > 0
- Očekivano trajanje stranice: Upozorenje kada je < 300 sekundi
- % Vrijeme procesora: Upozorenje kada > 80% tokom 5 minuta
- Dužina reda procesora: Upozorenje kada je > 2 po jezgru
- Prosječno vrijeme diska u sekundama/čitanje ili pisanje: Upozorenje kada je > 20 ms
- Dužina reda diska: Upozorenje kada je > 2 po disku
- Blokirani procesi: Upozorenje kada > 5
Prilagodite ove pragove na osnovu vaših 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 da pratim SQL Server performanse na daljinu?
Daljinski upravljač za monitor SQL Server slučajevi koji koriste ove metode:
- Monitor performansi: Navedite naziv udaljenog računara prilikom dodavanja brojača
- PowerShell: Koristite parametar -ComputerName sa Get-Counter
- DMV-ovi: Povežite se s udaljenim serverima putem SSMS-a i upitajte DMV-ove
- Alati treće strane: Većina alata za nadzor podržava nadzor udaljenog servera
Osigurajte da pravila zaštitnog zida dozvoljavaju promet Performance Monitora i da imate odgovarajuće dozvole na udaljenom serveru. Za više servera, razmislite o implementaciji centraliziranog nadzora sa namjenskim serverom za nadzor i bazom podataka.
17.8 Koji je najbolji besplatni alat za SQL Server monitor performansi?
Dostupno je nekoliko odličnih besplatnih alata za praćenje SQL Server performanse:
- Monitor performansi Windowsa: Ugrađen, sveobuhvatan i pouzdan
- SSMS Monitor aktivnosti: Praćenje u realnom vremenu bez dodatne instalacije
- Prošireni događaji: Ugrađeno lagano praćenje događaja SQL Server
- sp_Ko je aktivan: Popularna besplatna pohranjena procedura za detaljno praćenje aktivnosti
- DBA Dash: Alat za praćenje otvorenog koda sa sveobuhvatnim funkcijama
- SQLWATCH: Otvorenog koda sa mogućnostima praćenja gotovo u realnom vremenu
Za većinu organizacija, Performance Monitor u kombinaciji sa SSMS alatima i sp_WhoIsActive pruža odlične mogućnosti praćenja bez dodatnih troškova.
17.9 Kako da izvezem PerfMon podatke za analizu?
Izvezite podatke Monitora performansi koristeći ove metode:
Izvoz u CSV:
- Otvorite Monitor performansi sa učitanom datotekom dnevnika
- Kliknite desnim tasterom miša na grafikon i izaberite Sačuvaj podatke kao
- Izabrati Tekstualna datoteka (razdvojena zarezima) (.csv)
- Odaberite lokaciju i sačuvajte
- Otvori u Excelu za analizu
Koristite Relog naredbu:
relog input.blg -f csv -o output.csv
Ovaj uslužni program komandne linije pretvara binarne datoteke dnevnika (.blg) u CSV format radi lakše analize u aplikacijama za proračunske tablice.
17.10 Kada trebam koristiti alate za praćenje trećih strana umjesto ugrađenih opcija?
Razmotrite alate trećih strana kada:
- Upravljanje velikim brojem SQL Server instance (10+)
- Zahtjev za centraliziranim nadzorom u više podatkovnih centara
- Potrebne su napredne funkcije poput prediktivne analitike ili otkrivanja anomalija
- Želja za integriranim upozoravanjem sa sistemima za upravljanje incidentima
- Zahtjev za izvještavanje o usklađenosti i historijsku 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 funkcionišu 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 funkcije i profesionalnu podršku.
18. Dodatni resursi
18.1 Službena dokumentacija
Microsoft pruža opsežnu dokumentaciju za SQL Server monitor performansi:
- SQL Server Dokumentacija za Monitor performansi: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Dinamički prikazi upravljanja: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Prošireni događaji: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Prodavnica upita: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Podešavanje i praćenje performansi: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Preporučeni alati i preuzimanja
Osnovni alati za SQL Server monitor performansi:
- PAL alat: https://github.com/clinthuffman/PAL
- sp_Ko je aktivan: http://whoisactive.com/
- DBA Dash: 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 Central: 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 oznaka: https://stackoverflow.com/questions/tagged/sql-server
Ovi resursi pružaju tutorijale, savjete za rješavanje problema i najbolje prakse od iskusnih SQL Server profesionalci. Učešće u forumima zajednice pomaže vam da učite iz iskustava drugih i dijelite vlastito znanje.
o autoru
Yuan Sheng je viši administrator baze podataka (DBA) sa preko 10 godina iskustva u SQL Server okruženja i upravljanje bazama podataka u preduzećima. Uspješno je riješio stotine scenarija oporavka baza podataka u organizacijama finansijskih usluga, zdravstva i proizvodnje.
Yuan je specijaliziran 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 uvijek uključenei razvoj automatiziranih strategija za izradu sigurnosnih kopija i oporavak podataka za poslovne sisteme od kritične važnosti.
Svojim tehničkim znanjem i praktičnim pristupom, Yuan se fokusira na kreiranje sveobuhvatnih vodiča koji pomažu administratorima baza podataka i IT stručnjacima da riješe složene probleme. SQL Server efikasno rješava izazove. On prati najnovije SQL Server izdanja i Microsoftove tehnologije baza podataka koje se razvijaju, redovno testirajući scenarije oporavka kako bi osigurao da njegove preporuke odražavaju najbolje prakse iz stvarnog svijeta.
Imate pitanja o SQL Server oporavak ili vam trebaju dodatne smjernice za rješavanje problema s bazom podataka? Yuan pozdravlja povratne informacije i prijedlozi za poboljšanje ovih tehničkih resursa.





























