1. Uvod v SQL Server Performance Monitor
1.1 Kaj je SQL Server Monitor zmogljivosti?
SQL Server Nadzor delovanja je postopek sledenja, analiziranja in upravljanja delovanja in zdravja vašega SQL Server podatkovnih baz. Vključuje zbiranje in interpretacijo podatkov o različnih vidikih vašega sistema podatkovnih baz, da se zagotovi optimalno delovanje, preprečijo težave in ohrani zdravje podatkovne baze.
Spremljanje delovanja zajema sledenje časov izvajanja poizvedb, izkoriščenosti virov, delovanja indeksov, blokiranja in zastojev ter vzorcev rasti baze podatkov. Ta stalen nadzor pomaga skrbnikom prepoznati morebitne težave, preden te vplivajo na uporabnike ali poslovne operacije.
1.2 Ključne prednosti spremljanja uspešnosti
Učinkovito SQL Server Monitor zmogljivosti ponuja več ključnih prednosti:
- Proaktivno odkrivanje težav: Prepoznajte in odpravite morebitne težave, preden vplivajo na uporabnike ali poslovanje
- Optimizacija delovanja: Odkrivanje ozkih grl in neučinkovitosti za izboljšanje splošne učinkovitosti delovanja baze podatkov
- Načrtovanje zmogljivosti: Napovedovanje potreb po virih in načrtovanje prihodnje rasti na podlagi zgodovinskih podatkov
- Skladnost in varnost: Zagotovite skladnost s predpisi in odkrijte sumljive dejavnosti
1.3 Pogosti izzivi pri delovanju
Brez ustreznega monitorja delovanja baze podatkov SQL se organizacije soočajo z več tveganji:
- Nepričakovani izpadi, ki motijo poslovanje
- Slaba zmogljivost aplikacije, ki vpliva na uporabniško izkušnjo
- Izguba ali poškodba podatkov
- Neučinkovita izraba virov, ki vodi do nepotrebnega costs
- Razočarani uporabniki in morebitna izguba prihodka
Glede na študijo IDC iz leta 2023 65 % težav z zmogljivostjo baz podatkov izvira iz slabih praks spremljanja ali optimizacije.
2. Razumevanje sistema Windows Performance Monitor (PerfMon)
2.1 Kaj je nadzornik učinkovitosti delovanja sistema Windows?
Nadzor delovanja sistema Windows (PerfMon) je vgrajeno orodje sistema Windows, ki spremlja sistemske vire in delovanje aplikacij. SQL Server skrbnikom PerfMon ponuja neprecenljiv vpogled tako v operacijski sistem kot tudi SQL Server metrike, zaradi česar je bistvenega pomena za celovito analizo uspešnosti.
PerfMon redno meri statistiko delovanja in jo shranjuje v datoteke za kasnejšo analizo. Skrbniki baz podatkov lahko izberejo časovni interval, obliko datoteke in statistiko, ki jo želijo spremljati. Orodje ni SQL Server-specifično – sistemski skrbniki ga uporabljajo za spremljanje samega sistema Windows, sistema Exchange, datotečnih strežnikov in vseh aplikacij, ki lahko naletijo na ozka grla.
2.2 Zagon monitorja učinkovitosti delovanja
Monitor učinkovitosti delovanja lahko zaženete na več načinov:
- klik Start, tip perfmon V iskalnem polju kliknite na »Performand Monitor« v rezultatu iskanja:
- Pritisnite Windows + R, tip perfmonin pritisnite Vnesite
- Pomaknite se na nadzorno ploščo -> Sistem in varnost -> upravna orodja -> Performance Monitor
3. bistvena SQL Server Števci uspešnosti
3.1 Števci zmogljivosti pomnilnika
Števci pomnilnika so ključni za spremljanje SQL Server zmogljivost, saj kažejo, ali ima vaša baza podatkov dovolj pomnilniških virov.
Razpoložljivi MB
Ta števec prikazuje količino fizičnega pomnilnika, ki je takoj na voljo za dodelitev. Ta mora ostati dokaj konstantna in idealno ne sme pasti pod 4096 MB. Nizke vrednosti lahko kažejo, da SQL ServerNajvečja nastavitev pomnilnika je ostala privzeta ali neSQL Server aplikacije porabljajo pomnilnik.
Pričakovana življenjska doba strani
Pričakovana življenjska doba strani meri, kako dolgo (v sekundah) stran ostane v medpomnilniškem naboru, ne da bi se nanjo sklicevalo. Običajna vrednost je 300 sekund ali več. Nižje vrednosti kažejo na obremenitev pomnilnika in prekomerno menjavo medpomnilnika, kar zmanjšuje učinkovitost predpomnilnika.
Razmerje zadetkov predpomnilnika medpomnilnika
Ta števec prikazuje odstotek zahtev za podatke, na katere je bil odgovorjen predpomnilnik SQL namesto branja z diska. Običajno doseže ali presega 99 %. Nižje vrednosti kažejo, da SQL Server potrebuje več pomnilnika ali se po ponovnem zagonu še vedno ogrevatart.
Dodelitve pomnilnika v teku
To prikazuje število procesov, ki čakajo na pomnilnik znotraj SQL ServerV normalnih pogojih bi morala biti ta vrednost vedno 0. Višje vrednosti kažejo na nezadostno dodelitev pomnilnika za SQL Server.
TarPridobite si pomnilnik strežnika v primerjavi s skupnim pomnilnikom strežnika
Tar»get Server Memory« označuje idealno količino pomnilnika SQL Server želi uporabiti. Skupni pomnilnik strežnika prikazuje, kaj SQL Server trenutno uporablja. Razmerje med tema vrednostma mora biti približno 1. Pomembne razlike lahko kažejo na pritisk na pomnilnik ali premalo razpoložljivega pomnilnika.
3.2 Števci zmogljivosti procesorja
Števci procesorjev pomagajo prepoznati ozka grla procesorja in razumeti, kako SQL Server uporablja računalniške vire.
% časa procesorja
To meri odstotek pretečenega časa, ki ga procesor porabi za izvajanje niti, ki niso v mirovanju. Na aktivnih strežnikih lahko vrednosti poskočijo na 100 %, vendar trajna uporaba nad 70–75 % običajno kaže na težave z zmogljivostjo za uporabnike. Manjkajoči ali neustrezni indeksi pogosto povzročijo visoko porabo procesorja.
% privilegiranega časa
Procesorski čas se deli na obdelavo v uporabniškem načinu in privilegiranem (jedrnem) načinu. Ves dostop do diska in V/I se izvaja v jedrnem načinu. Če ta števec preseže 25 %, sistem verjetno izvaja preveč V/I. Normalne vrednosti se gibljejo med 5 % in 10 %.
Dolžina čakalne vrste procesorja
Ta števec prikazuje niti, ki čakajo na vire procesorja. Vrednosti so dosledno nad 1 (razen med SQL Server stiskanje varnostnih kopij) kažejo na obremenitev procesorja. To pogosto pomeni, da so na SQL Server stroj, kar krši najboljše prakse.
Preklopi konteksta/s
To meri, kako pogosto procesor preklaplja med nitmi. Prekomerno preklapljanje kontekstov lahko vpliva na zmogljivost in kaže na visoko obremenitev sistema.
3.3 Števci zmogljivosti V/I diska
Števci diskov so bistveni za spremljanje delovanja SQL, saj vhodno/izhodni podatki z diska pogosto postanejo glavno ozko grlo v sistemih baz podatkov.
% Čas diska
To beleži odstotek časa, ko je bil disk zaseden z operacijami branja/pisanja. Vrednosti, ki so stalno nad 85 %, kažejo na ozko grlo V/I. Ker je disk veliko počasnejši od pomnilnika, zmanjšanje te metrike izboljša zmogljivost.
Povprečno branje na disku v sekundah in povprečno pisanje na disku v sekundah
Ti števci merijo povprečni čas (v sekundah) za operacije branja in pisanja. Če povprečne vrednosti presegajo 10–20 ms, disk predolgo obdeluje podatke. Pogoni za dnevnik transakcij zahtevajo še posebej hitro pisanje.
Dolžina čakalne vrste diska
To prikazuje čakajoče zahteve za branje/pisanje na disk. Vrednosti, ki so stalno višje od 2 (ali 2 na disk za polja RAID), kažejo, da disk ne more slediti zahtevam V/I.
Število bajtov diska/s
Ta funkcija spremlja hitrost prenosa podatkov na disk in z njega. Če ta preseže nazivno zmogljivost diska, se podatki začnejo kopičiti v zaostanku, kar se kaže v povečanju dolžine čakalne vrste diska.
Prenosi diska/s
To spremlja število operacij branja/pisanja, izvedenih na disku. SQL Server Dostop do podatkov je običajno naključen, kar je zaradi premikanja glave pogona počasnejše. Zagotovite, da ta vrednost ostane pod največjo hitrostjo vašega diskovnega pogona (običajno 100/s za standardne pogone).
3.4 SQL Server Specifični števci
3.4.1 Števci upravljalnika medpomnilnika
Števci upravitelja medpomnilnika spremljajo SQL Serveroperacije s pomnilniškim medpomnilnikom:
- Branja strani/sekundo: Skupno število branj strani fizične baze podatkov
- Število zapisov strani/s: Kumulativno število zapisov strani fizične baze podatkov
- Leno pisanje/sekundo: Število medpomnilnikov, ki jih je leni zapisovalec zapisal za sprostitev pomnilnika
- Strani kontrolnih točk/s: Strani, ki jih je izpraznila kontrolna točka ali druge operacije, ki zahtevajo izpraznitev vseh umazanih strani
3.4.2 Števci statistike SQL
Ti števci omogočajo vpogled v SQL Server obdelava poizvedb:
- Paketne zahteve/s: Število paketnih zahtev SQL, ki jih prejme strežnik. To služi kot merilo za aktivnost strežnika.
- Prevajanja SQL/s: Število prevajanj SQL. Mora biti 10 % ali manj skupnega števila paketnih zahtev/s.
- Ponovne prevajanja SQL/s: Število ponovnih prevajanj SQL. Prav tako mora biti 10 % ali manj od skupnega števila paketnih zahtev/s.
3.4.3 Števci splošne statistike
- Uporabniške povezave: Število uporabnikov, povezanih s sistemom. Uporablja se kot merilo za sledenje rasti povezave skozi čas.
- Blokirani procesi: Trenutno število blokiranih procesov. Idealno bi bilo 0.
3.4.4 Števci upravljalnika pomnilnika
- Čakajoče podelitve pomnilnika: Skupno število procesov, ki čakajo na dodelitev pomnilnika delovnega prostora. Idealno bi moralo biti 0.
4. Nastavitev monitorja učinkovitosti delovanja za SQL Server(Windows Vista / Server 2008 in novejši)
Najprej moramo ustvariti vsebnik za lažje upravljanje števcev:
- Za sisteme Windows Vista / Server 2008 in novejše različice lahko v tem razdelku ustvarite nabore zbiralnikov podatkov.
- Za sisteme Windows XP / Server 2003 in starejše različice lahko ustvarite dnevnike števcev v naslednji razdelek.
4.1 Kaj so nabori zbiralnikov podatkov?
Zbirniki podatkov organizirajo števce učinkovitosti delovanja, podatke o sledenju dogodkov in informacije o konfiguraciji sistema v eno samo zbiralno enoto. Zagotavljajo večjo prilagodljivost kot preprosti dnevniki števcev in omogočajo avtomatizirano, načrtovano zbiranje podatkov za celovito spremljanje učinkovitosti delovanja baze podatkov SQL.
4.2 Ustvarjanje nabora zbiralnikov podatkov
Ustvarite nabor zbiralcev podatkov po meri za spremljanje SQL Server števci uspešnosti:
- Odprite nadzor delovanja
- Razširi Kompleti zbiralnikov podatkov
- Z desno tipko miške kliknite Uporabnik definiran
- Izberite Novo -> Komplet zbiralnikov podatkov
- Vnesite opisno ime (npr. »SQL Server Metrike uspešnosti“)
- Izberite Ročno ustvarjanje (napredno)
- klik Naslednji
- Preveri Ustvarjanje podatkovnih dnevnikov -> Števec učinkovitosti delovanja
- klik Naslednji
- klik Dodaj za izbiro števcev
- Dodaj želeno SQL Server in sistemski števci.
- Kompleti Interval vzorčenja
- Za rutinsko spremljanje uporabite 1 minuto (60 sekund)
- Za aktivno odpravljanje težav uporabite 15–30 sekund
- Izogibajte se dolgotrajnemu izvajanju visokofrekvenčnih zajemanj, saj lahko vplivajo na delovanje in ustvarijo prekomerno količino podatkov.
- klik Naslednji
- Izberite mesto za shranjevanje dnevnikov
- klik Konec, bo ustvarjen nov nabor zbiralnikov podatkov.
- Privzeto bo novi nabor zbiralnikov podatkov NE biti starsamodejno. Najdete ga v levi plošči pod Uspešnost -> Kompleti zbiralnikov podatkov -> Uporabnik definiran -> Vaš zbiralnik podatkov, kliknite z desno miškino tipko in izberite Start
4.3 Števci ključev za dodajanje
- Pomnilnik -> Razpoložljivi MB
- Fizični disk -> Povprečno število sekund diska/branje (vsi primerki razen _Total)
- Fizični disk -> Povprečno število sekund diska/pisanje (vsi primerki razen _Total)
- Fizični disk -> Branja diska/s (vsi primerki razen _Total)
- Fizični disk -> Število zapisov na disk/s (vsi primerki razen _Total)
- Procesor -> % procesorskega časa (vsi primerki razen _Total)
- SQLServer: Splošna statistika -> Uporabniške povezave
- SQLServer: Upravitelj pomnilnika -> Pomnilniške dodelitve v teku
- SQLServer: Statistika SQL -> Paketne zahteve/s
- SQLServer: Statistika SQL -> Prevajanja SQL/s
- SQLServer: Statistika SQL -> Ponovne prevajanja SQL/s
- Sistem -> Dolžina čakalne vrste procesorja
4.4 Nastavitev pogojev zaustavitve
Konfigurirajte pogoje zaustavitve, da preprečite neomejeno rast podatkov:
- Ko ustvarite nabor zbiralcev podatkov, ga kliknite z desno miškino tipko in izberite Nepremičnine
- Kliknite Pogoj zaustavitve tab
- Omogoči Skupno trajanje
- Nastavi trajanje na 1 dan (24 ur)
- klik OK da shranite
To zagotavlja, da dnevnik ne postane prevelik in se samodejno ponovno ustvari.tarts, če je načrtovano.
4.5 Načrtovanje zbiranja podatkov
Avtomatizirajte zbiranje podatkov za zagotovitev doslednega spremljanja:
- Z desno tipko miške kliknite na nabor zbiralcev podatkov in izberite Nepremičnine
- Kliknite Urnik tab
- klik Dodaj ustvariti nov urnik
- Konfigurirajtardatum in čas
- Nastavite vzorec ponavljanja (npr. dnevno)
- klik OK za shranjevanje urnika
Za avtomatske menjalniketartup, konfigurirajte nabor zbiralnikov podatkov na start, ko se strežnik zažene z ustvarjanjem kottarSprožilec tup v razporejevalniku opravil sistema Windows.
5. Nastavitev monitorja učinkovitosti delovanja za SQL Server(Windows XP / Server 2003 in starejši)
V sistemu Windows XP / Server 2003 in starejših različicah lahko ustvarite dnevnike števcev, ki vam omogočajo, da izberete nabor števcev učinkovitosti delovanja in jih redno beležite v datoteko.
5.1 Ustvarjanje dnevnikov števcev
Za ustvarjanje novega dnevnika števca sledite tem korakom:
- Odprite nadzor delovanja
- Razširi Dnevniki delovanja in opozorila v levem podoknu
- Z desno tipko miške kliknite Dnevniki števcev
- Izberite Nove nastavitve dnevnika
- Poimenujte dnevnik z imenom strežnika vaše baze podatkov (npr. »ProductionSQL01«)
- klik OK za začetek konfiguracije
Ustvarjanje ločenih dnevnikov števcev za vsak strežnik vam omogoča testiranje delovanja na posameznih strežnikih, ne da bi hkrati zbirali podatke za vse strežnike.
5.2 Dodajanje števcev zmogljivosti
Ko ustvarite dnevnik števcev, dodajte specifične števce učinkovitosti delovanja, ki jih želite spremljati:
- Kliknite Dodaj števce Gumb
- Spremenite ime računalnika tako, da bo kazalo na vaš SQL Server primer
- Pritisnite Tab nalaganje razpoložljivih objektov za zmogljivost
- V spustnem meniju izberite objekt delovanja (npr. Spomin)
- Izberite določene števce iz seznam
- Izberite primere, če je primernocab(npr. posamezni procesorji ali diski)
- klik Dodaj vključiti števec
- Ponovite za vse želene števce
- klik Zapri ko končaš
5.3 Konfiguracija vzorčnih intervalov
Interval vzorčenja določa, kako pogosto Performance Monitor zbira podatke. Konfigurirajte ustrezne intervale glede na vaše potrebe po spremljanju:
- V lastnostih dnevnika števca poiščite Vzorec podatkov vsakih
- Nastavite interval (privzeto je 15 sekund)
- Za spremljanje izhodiščne vrednosti uporabite 1-minutne intervale za dnevno zbiranje
- Za odpravljanje težav uporabite 15–30-sekundne intervale za kratke sunke.
- klik OK nanesti
Ne pozabite, da krajši intervali ustvarijo več podatkov, ki jih je težje upodobiti in analizirati. Večji intervali lahko spregledajo pomembne konice. Uravnotežite granularnost podatkov z zahtevami glede shranjevanja in analize.
5.4 Konfiguriranje dnevniških datotek
Pravilna konfiguracija datoteke dnevnika zagotavlja učinkovito in dostopno shranjevanje podatkov:
- Kliknite Log datoteke zavihek v lastnostih dnevnika števca
- Spremeni vrsto datoteke dnevnika v Besedilna datoteka (ločena z vejico) za enostaven uvoz v Excel
- klik Konfiguracija
- Nastavite pot datoteke na namensko lokacijo (npr. skupno mapo PerformanceLogs)
- klik OK potrditi
Za shranjevanje dnevnikov uporabite omrežno dostopno skupno rabo, da lahko do datotek dostopate na daljavo in jih delite z drugimi uporabniki.
5.5 Nastavitev poverilnic
Konfigurirajte ustrezne poverilnice, da bo lahko Monitor zmogljivosti dostopal do oddaljenega SQL Server primeri:
- V lastnostih dnevnika števca poiščite Zaženi kot
- Vnesite uporabniško ime domene v obliki: DOMENA\uporabniškoime
- klik Nastavi geslo
- Vnesite in potrdite svoje geslo
- klik OK da shranite
To storitvi PerfMon omogoča zbiranje statističnih podatkov z uporabo dovoljenj vaše domene namesto lastnih poverilnic.
6. Analiza podatkov monitorja učinkovitosti delovanja
6.1 Ogled dnevniških datotek v nadzorniku učinkovitosti delovanja
Monitor učinkovitosti delovanja lahko prikaže zgodovinske podatke iz shranjenih dnevniških datotek:
- Odprite nadzor delovanja
- V levem podoknu kliknite Orodja za spremljanje -> Performance Monitor.
- Z desno miškino tipko kliknite kjer koli v območju grafa
- Izberite Nepremičnine
- Kliknite LED vir svetlobe tab
- Izberite Dnevniške datoteke izbirni gumb
- klik Dodaj
- Pomaknite se do datoteke dnevnika (.blg ali .csv)
- Izberite datoteko in kliknite Odprto
- Uporaba Časovni razpon drsnik za izbiro obdobja, ki ga želite analizirati
- klik OK zapreti pogovorno okno Lastnosti
- Kliknite zeleno ikono plus, da dodate števce iz datoteke dnevnika
- Izberite želene števce za prikaz
- klik OK
Graf bo zdaj prikazal zgodovinske podatke iz datoteke dnevnika. Za podrobno analizo uporabite drsnik Časovni obseg v Lastnostih, da zožite določena časovna obdobja.
6.2 Izvoz podatkov v Excel
Excel ponuja zmogljive analitične zmogljivosti za podatke števcev učinkovitosti delovanja:
- Odprite nadzor delovanja z naloženo datoteko dnevnika
- Z desno miškino tipko kliknite kjer koli v območju grafa
- Izberite Shrani podatke kot
- Izberite lokacijo za datoteko
- Izberite Besedilna datoteka (ločena z vejicami) (.csv) iz spustnega menija
- klik Prihranek
- Odprite datoteko CSV v Excelu
Za boljšo analizo formatirajte izvožene podatke:
- Izbriši napol prazno vrstico 2 in počisti celico A1
- Oblikujte stolpec A kot datum/čas
- Oblikujte številske stolpce z nič decimalnim številom in ločilom tisočic
- Poiščite in zamenjajte imena strežnikov v glavah (npr. zamenjajte »\\IMESTRŽNIKA« s praznim poljem)
- Počistite imena objektov v glavah (npr. »Pomnilnik«, »Fizični disk«, »Procesor«)
- Za boljšo vidljivost zmanjšajte velikost pisave glave na 8 točk
6.3 Interpretacija vrednosti števcev
6.3.1 Analiza števca pomnilnika
Pri analizi števcev pomnilnika bodite pozorni na te kazalnike:
- Razpoložljivi MB: Moral bi ostati dosledno nad 4096 MB
- Pričakovana življenjska doba strani: Vrednosti nad 300 sekundami kažejo na zdrav spomin. Nižje vrednosti kažejo na pritisk na spomin.
- Razmerje zadetkov predpomnilnika: Mora doseči ali preseči 99 %. Nižje vrednosti kažejo na prekomerno branje diska.
- Čakajoče podelitve pomnilnika: Vedno mora biti 0. Vsaka pozitivna vrednost označuje pomnilnik.tarvacija
6.3.2 Analiza števca CPU-ja
Kazalniki delovanja procesorja vključujejo:
- % časa procesorja: Dolgotrajna uporaba nad 75 % kaže na težave z delovanjem. Skoki do 100 % so normalni, vendar ne bi smeli trajati dolgo.
- Dolžina čakalne vrste procesorja: Vrednosti nad 1 kažejo na obremenitev procesorja. Preverite upravitelja opravil, da ugotovite, kateri procesi porabljajo procesor.
- % Privilegiranega časa: Moralo bi ostati med 5 in 10 %. Vrednosti nad 25 % kažejo na prekomerno število V/I operacij.
6.3.3 Analiza števca diskov
Pragovi zmogljivosti diska:
- Povprečno število sekund na disku/branje in pisanje: Moral bi ostati pod 10–20 ms. Višje vrednosti kažejo na počasne podsisteme diska.
- Dolžina čakalne vrste diska: Vrednosti, ki so stalno nad 2 (ali 2 na disk v RAID-u), kažejo na ozka grla V/I.
- % Čas diska: Vztrajne vrednosti nad 85 % kažejo na nasičenost diska
6.4 Uporaba formul in statistike
Za hitro analizo dodajte statistične formule v Excel:
- Na vrh preglednice vstavite 7 praznih vrstic
- V stolpec A dodajte oznake: povprečje, mediana, najmanj, največ, standardni odklon
- V celico B2 vnesite: =POVPREČJE(B9:B100) (prilagodite B100 zadnji podatkovni vrstici)
- V celico B3 vnesite: =MEDIAN(B9:B100)
- V celico B4 vnesite: =MIN(B9:B100)
- V celico B5 vnesite: =MAX(B9:B100)
- V celico B6 vnesite: =STDEV(B9:B100)
- Kopiraj formule v vse stolpce števcev
- Izberite celico B9 in pritisnite Alt+W+F+Enter, da zamrznete podokna.
Ta statistika pomaga prepoznati trende, odstopanja in normalne delovne razpone za vsak števec.
7. Orodje za analizo učinkovitosti delovanja dnevnikov (PAL)
7.1 Uvod v PAL
Analiza učinkovitosti delovanja za dnevnike (PAL) je brezplačno orodje, ki ga je razvil Clint Huffman in analizira dnevnike monitorja učinkovitosti delovanja ter ustvarja poročila HTML z analizo pragov. PAL primerja vaše podatke o učinkovitosti delovanja z znanimi pragovi in ponuja podrobna priporočila za SQL Server optimizacija delovanja.
Prenesite PAL iz repozitorija GitHub: https://github.com/clinthuffman/PAL
7.2 Nastavitev PAL-a
Namestite PAL tako, da sledite tem korakom:
- Prenesite namestitveno datoteko PAL z GitHuba
- Zaženite namestitveni program
- klik Naslednji na pozdravnem zaslonu
- Preglejte in sprejmite namestitveni imenik
- klik Naslednji nadaljevati
- klik namestitev za začetek namestitve
- Počakajte, da se namestitev konča
- klik Konec
7.3 Obdelava dnevniških datotek s PAL-om
Analizirajte dnevnike monitorja učinkovitosti delovanja z uporabo PAL-a:
- Zaženi PAL iz Start meni ali namestitveni imenik
- Kliknite Dnevnik števca tab
- klik Brskanje za izbiro datoteke .blg
- Pomaknite se do datoteke dnevnika sistema Performance Monitor
- klik Odprto
- Kliknite Datoteka s pragom tab
- V spustnem meniju izberite datoteko s pragom (npr. »SQL Server 2016")
- Kliknite vprašanja tab
- Odgovorite na vprašanja o konfiguraciji vašega sistema
- Navedite, ali je vaš SQL Server je OLTP ali podatkovno skladišče
- Vnesite skupno količino razpoložljivega RAM-a
- Kliknite Izhodne možnosti tab
- Izberite izhodno mapo za poročilo HTML
- Preveri HTML izhodni format
- Kliknite Izvedba tab
- Preglejte svoje izbire
- Preveri Start izvedba zdaj
- klik Konec
7.4 Analiziranje poročil PAL
Ko PAL zaključi analizo, ustvari poročilo HTML, ki vsebuje:
- Povzetek vprašanj uspešnosti
- Podrobna analiza števcev z grafikoni
- Kršitve pragov so označene z barvo
- Posebna priporočila za vsako težavo
- Zgodovinski trendi in vzorci
Poročilo uporablja barvno kodiranje za označevanje resnosti: rdeča za kritične težave, rumena za opozorila in zelena za zdrave metrike. Preglejte vsak razdelek, da razumete ozka grla v delovanju, in upoštevajte priporočila PAL za optimizacijo.
8. Alternativa SQL Server Orodja za spremljanje
8.1 Vgrajeno SQL Server Orodja
8.1.1 SQL Server Monitor dejavnost
SQL Server Monitor dejavnost prikazuje informacije v realnem času o SQL Server procesi in uspešnost:
- Odprto SQL Server Management Studio (SSMS) in se povežite s svojim primerkom strežnika
- Z desno tipko miške kliknite ime strežnika v Raziskovalcu objektov
- Izberite Monitor dejavnost
Nadzornik aktivnosti prikazuje procese, čakanje virov, vhodno/izhodne operacije podatkovnih datotek in nedavne drage poizvedbe. Zagotavlja hiter vpogled v trenutno aktivnost baze podatkov, vendar ne shranjuje zgodovinskih podatkov.
8.1.2 SQL Server Nadzorna plošča uspešnosti
SQL Server Management Studio vključuje vgrajena poročila o uspešnosti:
- In SQL Server Management Studio (SSMS), z desno tipko miške kliknite SQL Server primerek v Raziskovalcu objektov
- Izberite Poročila -> Standardna poročila
- Izberite med razpoložljivimi poročili, kot so Nadzorna plošča uspešnosti
Nadzorna plošča za uspešnost ponuja vizualni vpogled v SQL Server zmogljivost instance, vključno z izkoriščenostjo sistemskega procesorja, trenutnimi čakalnimi zahtevami in meritvami zmogljivosti. Dostopite do nje prek menija Standardna poročila.
8.1.3 SQL Server Profil
SQL Server Profil zajema in analizira SQL Server dogodki, kot so izvajanje poizvedb, transakcijske operacije in dejavnosti prijave.
Za start SQL Server profiler:
- In SQL Server Management Studio, kliknite Orodja -> SQL Server Profil
Profiler ustvarja znatne stroške delovanja, zato ga uporabljajte preudarno in po možnosti v času izven konic. Za most scenariji, Razširjeni dogodki zagotavljajo boljšo zmogljivost z manjšim vplivom.
8.1.4 Razširjeni dogodki
Razširjeni dogodki je lahek sistem za spremljanje delovanja, vgrajen v SQL ServerNadomešča SQL Server Profiler z boljšo zmogljivostjo in nižjimi stroški.
Ključne značilnosti vključujejo:
- Natančno spremljanje določenih dogodkov
- Minimalni vpliv na zmogljivost
- Prilagodljive seje dogodkov
- Integracija s SSMS in drugimi orodji
- Podpora za kompleksno filtriranje in združevanje
Ustvarjanje razširjenih sej dogodkov prek SSMS:
- In Raziskovalec predmetov, razširite svoj strežnik in pojdite na Upravljanje -> Razširjeni dogodki -> Seje
- Z desno miškino tipko kliknite Sessions In izberite Čarovnik za novo sejo
- Sledite navodilom zatarnova seja.
8.1.5 Dinamični pogledi upravljanja (DMV)
DMV-ji razkrivajo podrobne informacije o stanju strežnika za spremljanje zdravja, diagnosticiranje težav in optimizacijo delovanja. Ključni DMV-ji vključujejo:
- sys.dm_exec_query_stats: Statistika uspešnosti poizvedb
- sys.dm_os_wait_stats: Vrste čakanja, ki vplivajo na delovanje strežnika
- števci_učinkovitosti_sys.dm_os: SQL Server podatki števca uspešnosti
- sys.dm_exec_requests: Trenutno se izvajajo zahteve
- sys.dm_exec_sessions: Aktivne uporabniške seje
Za dostop do podatkov o učinkovitosti delovanja v realnem času in zgodovinskih meritev lahko te poglede poizvedujete s T-SQL.
Osnovna uporaba
-- 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 Rešitve za spremljanje tretjih oseb
Redgate SQL Monitor
Redgate SQL Monitor je specializiran za spremljanje SQL Server in okolja zbirke podatkov Azure SQL. Zagotavlja spremljanje celotnega posestva, prilagodljiva opozorila in nadzorne plošče, podrobne zmogljivosti poročanja in integracijo z drugimi orodji Redgate.
SolarWinds SQL Server Orodje za spremljanje
SolarWinds SQL Server Orodje za spremljanje, znano tudi kot SQL Sentry, je zasnovano za diagnosticiranje, reševanje in preprečevanje resnih težav z delovanjem SQL Server.
IDERA SQL Server Orodje za spremljanje delovanja
Diagnostika IDERA SQLostic Manager je močan SQL Server orodje za spremljanje delovanja, zasnovano za pomoč pri proaktivnem spremljanju delovanja, diagostike in uglaševanje.
Spremljanje SQL upravitelja aplikacij
Applications Manager ponuja Microsoft SQL Server Orodje za spremljanje, ki nudi uporabne IT rešitve. Zasnovan je tako, da nadzira delovanje baz podatkov SQL, hkrati pa odkriva hrošče in rešuje težave, ki bi lahko povzročile zaustavitve delovanja organizacije.
8.3 Orodja za spremljanje odprte kode
DBA Dash
DBA Dash je brezplačno orodje za spremljanje z odprto kodo, ki ponuja vpogled v SQL Server zdravje, zmogljivost in aktivnost. Posebej uporaben je za majhna do srednje velika okolja in vključuje dnevne preglede DBA, spremljanje zmogljivosti in sledenje konfiguracije.
SQLWATCH
SQLWATCH ponuja decentralizirano, skoraj v realnem času SQL Server spremljanje s 5-sekundno natančnostjo za zajemanje konic delovne obremenitve. Podpira Grafano za nadzorne plošče v realnem času in Power BI za poglobljeno analizo. Orodje ponuja obsežne možnosti konfiguracije, ni potrebe po vzdrževanju in neomejeno skalabilnost.
Opservator
Razvit s strani Stack Exchange, Opserver spremlja več sistemov, vključno z SQL Server, Redis in Elasticsearch. Ponuja pogled »vseh strežnikov« za statistiko procesorja, pomnilnika, omrežja in strojne opreme v celotni infrastrukturi.
sp_Kdo je aktiven
sp_WhoIsActive je celovita shranjena procedura za spremljanje dejavnosti, ki jo je ustvaril Adam Machanic. Deluje z vsemi SQL Server različice od leta 2005 do trenutnih izdaj in jih pogosto uporabljajo SQL Server DBA za spremljanje aktivnosti v realnem času.
Če želite uporabiti sp_WhoIsActive, ga prenesite s spletne strani http://whoisactive.com/, namestite v svojo bazo podatkov in zaženite:
EXEC sp_WhoIsActive
Postopek prikazuje trenutno izvajajoče se poizvedbe, informacije o čakanju, podrobnosti o blokiranju in porabo virov.
9. Najboljše prakse za SQL Server Performance Monitor
9.1 Določitev izhodišč uspešnosti
Osnovne vrednosti delovanja določajo normalne obratovalne parametre za vaše SQL Server okolje. Brez izhodišč ne morete ugotoviti, ali trenutne metrike kažejo na težave ali predstavljajo tipično vedenje.
Ustvarite osnovne črte tako, da:
- Zbiranje podatkov o delovanju med normalnim delovanjem vsaj en teden
- Zajemanje meritev tako v času prometne konice kot izven nje
- Dokumentiranje tipičnih vrednosti za števce ključev
- Beleženje sezonskih nihanj, če je primernocable
- Shranjevanje osnovnih podatkov za primerjavo s prihodnjimi metrikami
Osnovne vrednosti posodabljajte četrtletno ali po večjih spremembah infrastrukture, posodobitvah aplikacij ali spremembah baze podatkov.
9.2 Nastavitev ustreznih pragov opozoril
Konfigurirajte inteligentne pragove za prejemanje smiselnih opozoril, ne da bi se pri tem preobremenili z obvestili:
- Čakajoče pomnilniške dodelitve > 0 pomeni pritisk na pomnilnik
- Dolžina čakalne vrste procesorja > 2 na jedro kaže na ozko grlo procesorja
- Čas branja ali pisanja diska > 20 ms pomeni počasen V/I
- Blokirani procesi > 5 signalov spornih težav
- Pričakovana življenjska doba strani < 300 sekund kaže na pritisk pomnilnika
Prilagodite pragove glede na osnovne podatke in specifične značilnosti delovne obremenitve. Uporabite prilagodljive pragove, ki upoštevajo običajne spremembe v vašem okolju.
9.3 Redni pregled in analiza podatkov
Načrtujte redne preglede uspešnosti, da ugotovite trende in nastajajoče težave:
- Dnevno: Pregledujte meritve na visoki ravni in nedavna opozorila
- Tedensko: Izvedite poglobljeno analizo trendov uspešnosti
- Mesečno: Ustvarite celovita poročila in jih primerjajte z izhodišči
- Četrtletno: Pregled načrtovanja zmogljivosti in dolgoročnih trendov
Dokumentirajte ugotovitve in spremljajte izboljšave uspešnosti skozi čas.
9.4 Stroški spremljanja uravnoteženja
Spremljanje samo po sebi porablja vire, zato naj bo zbiranje podatkov uravnoteženo z vplivom na učinkovitost delovanja:
- Za neprekinjeno spremljanje uporabite intervale 30–60 sekund
- Za aktivno odpravljanje težav uporabljajte samo 15-sekundne intervale
- Omejite trajanje nabora zbiralnikov podatkov, da se izognete prekomernim količinam podatkov
- Shranjevanje dnevnikov na ločenih diskih od datotek baze podatkov
- Arhivirajte stare podatke o delovanju, da ohranite obvladljive velikosti datotek
Nadzor delovanja sistema pri pravilni konfiguraciji minimalno obremeni sistemske vire, običajno manj kot 2 %.
9.5 Dolgoročno hrambo podatkov
Hranite podatke o uspešnosti za smiselno analizo trendov in načrtovanje zmogljivosti:
- Hranite podatke o uspešnosti za vsaj 1-2 leti
- Arhivirajte podatke v ločeno shrambo po 3–6 mesecih
- Stisnite starejše datoteke dnevnika, da prihranite prostor
- Dokumentirajte vse pomembne dogodke ali spremembe, ki vplivajo na uspešnost
Glede na relativno majhno velikost podatkov števcev uspešnosti je njihovo shranjevanje za nedoločen čas pogosto izvedljivo in dragoceno za dolgoročno analizo.
9.6 Integracija s praksami DevOps
Vključite spremljanje delovanja baze podatkov v cevovode CI/CD:
- Vključite meritve učinkovitosti delovanja baze podatkov v preverjanje uvajanja
- Avtomatizirajte testiranje zmogljivosti za nove izdaje
- Preverite, ali spremembe kode negativno vplivajo na delovanje
- Ustvarite merila učinkovitosti delovanja za vsako izdajo
- Integrirajte opozorila o spremljanju s sistemi za upravljanje incidentov
10. Odpravljanje pogostih težav z zmogljivostjo
10.1 Prepoznavanje ozkih grl procesorja
Ozka grla procesorja se kažejo kot počasni odzivni časi poizvedb in visoka izkoriščenost procesorja. Za diagnosticiranje težav s procesorjem uporabite te korake:
- Preverite števec dolžine čakalne vrste procesorja. Vrednosti nad 2 na jedro kažejo na obremenitev procesorja.
- Preglejte % procesorskega časa. Vztrajne vrednosti nad 75 % kažejo na ozko grlo procesorja.
- Oddaljeno namizje do SQL Server
- Odpri upravitelja opravil (Ctrl+Shift+Esc)
- Kliknite Procesi tab
- Preveri Prikaži procese vseh uporabnikov
- Kliknite CPU glava stolpca za razvrščanje po porabi procesorja
- Določite, kateri procesi porabljajo vire procesorja
Če ne-SQL Server Aplikacije porabijo veliko procesorja, jih odstranite s strežnika baz podatkov. Če sqlservr.exe porabi veliko procesorja, preverite to z uporabo teh metod:
- Preverite prevajanja SQL/s in ponovna prevajanja SQL/s. Vrednosti nad 10 % paketnih zahtev/s kažejo na prekomerno prevajanje.
- Poizvedba sys.dm_exec_query_stats za prepoznavanje poizvedb, ki intenzivno uporabljajo procesor
- Pregled izvedbenih načrtov za manjkajoče indekse ali neučinkovite operacije
- Razmislite o dodajanju indeksov za zmanjšanje obsega pregledovanja tabel
10.2 Diagnosticiranje težav s spominom
Težave s spominom pomembno vplivajo SQL Server zmogljivost. Težave s pomnilnikom diagnosticirajte z uporabo teh kazalnikov:
Razpoložljive kapljice pomnilnika
Če število razpoložljivih MB stalno pade pod 100 MB, se operacijski sistem sooča s pomanjkanjem pomnilnika.tarvacija. Windows se lahko po strani premakne SQL Server pomnilnika na disk, kar povzroči zmanjšanje zmogljivosti.
Nizka pričakovana življenjska doba strani
Pričakovana življenjska doba strani pod 300 sekundami kaže na visoko stopnjo obračanja predpomnilnika. To kaže bodisi na nezadostno dodelitev pomnilnika bodisi na prekomerno obremenitev pomnilnika zaradi poizvedb.
Nizko razmerje zadetkov predpomnilnika
Razmerje zadetkov predpomnilnika pod 99 % pomeni SQL Server pogosto bere podatke z diska namesto iz pomnilnika. Do tega pride, ko je medpomnilnik premajhen ali SQL Server se še vedno ogreva po restart.
Dodelitve pomnilnika v teku
Vsaka vrednost nad 0 za Čakajoče dodelitve pomnilnika pomeni, da poizvedbe čakajo na dodelitve pomnilnika. To predstavlja kritično pomanjkanje pomnilnika, ki zahteva takojšnjo pozornost.
Za odpravo težav s pomnilnikom:
- Konfiguracija SQL Server nastavitev največjega pomnilnika, da ostane dovolj RAM-a za operacijski sistem (običajno 4–8 GB, odvisno od velikosti strežnika)
- Omogočite dovoljenje »Zakleni strani v pomnilniku« za SQL Server storitveni račun
- Če pritisk na pomnilnik vztraja, dodajte strežniku več fizičnega RAM-a
- Prepoznavanje in optimizacija poizvedb, ki intenzivno uporabljajo pomnilnik
10.3 Reševanje težav z V/I diska
Vhodno/izhodni podatki diska pogosto postanejo glavno ozko grlo zmogljivosti v sistemih baz podatkov. Težave z diskom diagnosticirajte z uporabo teh metod:
Visoka dolžina čakalne vrste diska
Če je dolžina čakalne vrste diska stalno nad 2 (ali 2 na disk za RAID), to pomeni, da diskovni podsistem ne more slediti zahtevam V/I. To ustvarja zaostanek čakajočih operacij.
Prekomerna zakasnitev diska
Vrednosti povprečnega časa diska v sekundah/branje in povprečnega časa diska v sekundah/pisanje nad 10–20 ms kažejo na počasen odziv diska. Pogoni dnevnika transakcij zahtevajo še posebej hitro delovanje, idealno pod 5 ms za pisanje.
Visok % časa diska
Vztrajen % časa diska nad 85 % kaže na nasičenost diska. Disk porabi most svojega časa obdelave V/I zahtev z malo preostale nedejavne zmogljivosti.
Preden odpravite težave z diskom, preverite, ali gre morda za simptome težav s pomnilnikom. Nezadosten pomnilnik prisili SQL Server prebrati več podatkov z diska, s čimer se umetno napihnejo metrike diska.
Za odpravljanje težav z vhodno/izhodnim delovanjem pristnega diska:
- Nadgradite na hitrejše diske (SSD namesto HDD)
- Za boljšo zmogljivost uporabite konfiguracije RAID
- Ločite datoteke baze podatkov, dnevnike transakcij in tempdb na različne fizične pogone
- Dodajte več pomnilnika za zmanjšanje branja diska
- Optimizirajte indekse za zmanjšanje nepotrebnega V/I
- Pregled in optimizacija slabo delujočih poizvedb
10.4 Obravnavanje blokiranja in zastojev
Do blokiranja pride, ko ena seja zaklene, kar preprečuje nadaljevanje drugih sej. Za odkrivanje težav z blokiranjem spremljajte te števce:
- Blokirani procesi: Idealno bi moralo biti 0
- Zaklepanje čakanja/s: Število zahtev za zaklepanje, ki zahtevajo čakanje
- Povprečna čakalna doba: Povprečno trajanje čakanja na zaklepanje
Za preiskavo blokade:
- Odprite nadzornik dejavnosti v SSMS
- Razširi Procesi oddelek
- Išči procese z neničelno vrednostjo Blokirano s strani vrednosti
- Določite ID blokirajoče seje
- Preglejte poizvedbe, ki povzročajo blokiranje
Za podrobnejšo analizo blokiranja uporabite sp_WhoIsActive. Prekomerno število vnosov wait_info pogosto kaže na spore v tempdb ali težave z blokiranjem.
Za zmanjšanje blokade:
- Zmanjšajte trajanje transakcije
- Uporabite ustrezne ravni izolacije
- Dodajte indekse za skrajšanje trajanja zaklepanja
- Razmislite o izolaciji READ_COMMITTED_SNAPSHOT
- Pregled in optimizacija dolgotrajnih poizvedb
10.5 Težave z zmogljivostjo poizvedb
Prepoznavanje dragih poizvedb je bistvenega pomena za spremljanje učinkovitosti delovanja SQL. Za iskanje problematičnih poizvedb uporabite te metode:
Uporaba monitorja aktivnosti
- V SSMS z desno tipko miške kliknite ime strežnika
- Izberite Monitor dejavnost
- Razširi Nedavne drage poizvedbe
- Pregled poizvedb z veliko procesorsko močjo, trajanjem ali logičnim branjem
Uporaba DMV-jev
Poizvedba sys.dm_exec_query_stats za prepoznavanje poizvedb, ki porabijo veliko virov:
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 izvedbenih načrtov
- V SSMS odprite novo okno poizvedbe
- klik Prikaz predvidenega načrta izvedbe (Ctrl+L) ali Vključite dejanski izvedbeni načrt (Ctrl+M)
- Izvedite svojo poizvedbo
- Pregled izvedbenega načrta za drage operacije
- Iščite preglede tabel, preglede indeksov ali visokokakovostneost Operacije
Optimizirajte poizvedbe z:
- Dodajanje ustreznih indeksov
- Prepisovanje poizvedb za izogibanje dragim operacijam
- Posodabljanje statistike
- Uporaba določenih imen stolpcev namesto SELECT *
- Izogibanje nepotrebnim stavkom DISTINCT ali ORDER BY
10.6 Zaznavanje in odpravljanje poškodovane baze podatkov
Poškodba baze podatkov lahko povzroči zmanjšanje delovanja, izgubo podatkov in sistemske napake. Hitro odkrivanje in odpravljanje poškodb je ključnega pomena za ohranjanje zdravja baze podatkov.
Kazalniki korupcije v zbirki podatkov
Bodite pozorni na te znake morebitne korupcije:
- Sporočila o napakah v SQL Server dnevnik napak (napaka 823, 824 ali 825)
- Nepričakovane napake aplikacije pri dostopu do določenih tabel
- Počasno delovanje poizvedb pri prej hitrih poizvedbah
- SQL Server zrušitve ali nepričakovane rešitvetarts
- Sumljive strani, ki se pojavljajo v tabeli msdb.dbo.suspect_pages
Uporaba DBCC CHECKDB za zaznavanje
DBCC CHECKDB je glavno orodje za odkrivanje poškodb baze podatkov. Redno ga izvajajte, da zgodaj odkrijete težave.
Spremljanje sumljivih strani
SQL Server samodejno zabeleži sumljive strani v zbirko podatkov msdb:
SELECT
database_id,
file_id,
page_id,
event_type,
error_count,
last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)
Vse vrnjene vrstice kažejo na težave s korupcijo, ki zahtevajo takojšnjo pozornost.
Strategije za preprečevanje korupcije
- Omogoči preverjanje strani z možnostjo CHECKSUM
- Redno vzdržujte varnostne kopije baze podatkov
- Uporabljajte zanesljivo strojno opremo s popravljanjem napak
- Spremljajte zdravje diska z orodji proizvajalca
- Načrtujte redne zagone DBCC CHECKDB
- Imejte SQL Server posodobljeno z najnovejšimi popravki
Možnosti obnovitve in popravila
Če odkrijete poškodbe, lahko poskusite z vgrajenim orodjem DBCC CHECKDB da jih odpravite. Če ne uspe, uporabite orodja drugih ponudnikov, kot so DataNumen SQL Recovery ki se lahko spopade s hudimi korupcijami.
11. Napredne tehnike spremljanja
11.1 Spremljanje shrambe poizvedb
Shramba poizvedb, predstavljena v SQL Server 2016 samodejno zajema podatke o učinkovitosti delovanja poizvedb. Zagotavlja dragocen vpogled v vedenje poizvedb, načrte izvajanja in trende učinkovitosti delovanja.
Omogočanje shrambe poizvedb
- V Raziskovalcu objektov SSMS z desno tipko miške kliknite zbirko podatkov
- Izberite Nepremičnine
- Kliknite Trgovina s poizvedbami Stran
- In Način delovanja (zahtevan)tako, da izberete Brati, pisati
- Po potrebi konfigurirajte dodatne nastavitve
- klik OK
Spremljanje učinkovitosti poizvedb
Dostop do poročil shrambe poizvedb prek raziskovalca objektov:
- Razširite bazo podatkov v Raziskovalcu objektov
- Razširi Trgovina s poizvedbami
- Izberite med razpoložljivimi poročili:
- Regresirane poizvedbe
- Skupna poraba virov
- Najpogostejše poizvedbe, ki porabljajo vire
- Poizvedbe s vsiljenimi načrti
- Sledene poizvedbe
Zaznavanje regresije načrta
Shramba poizvedb samodejno zazna, kdaj se načrti izvajanja poizvedb spremenijo in se zmogljivost zmanjša. Preglejte poročilo o regresiranih poizvedbah, da prepoznate poizvedbe, na katere vplivajo spremembe načrta.
Upravljanje prisilnih načrtov
Ko Query Store prepozna boljši načrt izvedbe, prisili SQL Server za uporabo:
- Odprite poizvedbo v shrambi poizvedb
- Z desno miškino tipko kliknite želeni načrt
- Izberite Načrt sil
To takoj izboljša delovanje brez potrebe po spremembi kode.
11.2 Spremljanje vzdrževanja indeksa
Fragmentacija indeksa sčasoma zmanjšuje učinkovitost delovanja poizvedb. Redno spremljajte in vzdržujte indekse, da zagotovite optimalno delovanje.
Preverjanje fragmentacije
Za preverjanje fragmentacije indeksa uporabite to poizvedbo:
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
To poizvedbo zaženite v času izven konic, saj lahko porabi veliko virov.
Analiza gostote strani
Gostota strani kaže, kako polne so strani indeksa. Nizka gostota zapravlja prostor in zmanjšuje zmogljivost:
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
Odločitve o reorganizaciji v primerjavi z odločitvami o obnovi
Izberite operacije vzdrževanja indeksa glede na stopnje fragmentacije:
- Fragmentacija 10–30 %: Uporabite ALTER INDEX REORGANIZE
- Fragmentacija > 30 %: Uporabite ALTER INDEX REBUILD
- Fragmentacija < 10 %: Ukrepanje ni potrebno
Operacije reorganizacije zahtevajo manj virov in se lahko izvajajo prek spleta. Operacije obnove so bolj temeljite, vendar porabijo veliko virov.
11.3 Posodobitve statistike baze podatkov
Pomoč pri statističnih podatkih baze podatkov SQL ServerOptimizator poizvedb ustvari učinkovite načrte izvedbe. Zastarela statistika vodi do slabe učinkovitosti poizvedb.
Samodejna obnova statistike
Omogočite samodejne posodobitve statistike:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Spremljanje statistike zdravja
Preverite, kdaj so bili statistični podatki nazadnje posodobljeni:
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
Ročno posodobite statistiko, ko je to potrebno:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Zbiranje podatkov o uspešnosti po meri
Ustvarite rešitve za spremljanje učinkovitosti delovanja po meri tako, da neposredno poizvedujete v sys.dm_os_performance_counters in shranite rezultate v tabele.
Ustvarjanje skriptov za zbirke po meri
Zgradite shranjeno proceduro za zbiranje podatkov števca učinkovitosti delovanja:
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
Uporaba sys.dm_os_performance_counters
Neposredno poizvedovanje števcev uspešnosti:
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
Shranjevanje zgodovinskih podatkov
Ustvarite tabelo za shranjevanje meritev uspešnosti skozi čas:
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 shranjevanja vrtljivih podatkov
Podatke shranite v pivotirani obliki z eno vrstico na čas vzorčenja in enim stolpcem na števec. To zmanjša prostor za shranjevanje in izboljša učinkovitost delovanja poizvedb v primerjavi s shranjevanjem ene vrstice na števec na vzorec.
11.5 Spremljanje več strežnikov
Za okolja z več SQL Server v primerih izvajajte centralizirano spremljanje.
Centraliziran pristop k spremljanju
- Ustvarite namensko nadzorno bazo podatkov na ločenem strežniku
- Zbiranje podatkov z vseh strežnikov v centralno skladišče
- Uporaba SQL Server Opravila agenta za izvajanje skriptov za zbiranje
- Implementirajte zbiranje števcev učinkovitosti delovanja, dostopnih prek omrežja
Oddaljeno spremljanje strežnika
Konfigurirajte Performance Monitor za zbiranje podatkov z oddaljenih strežnikov tako, da pri dodajanju števcev navedete imena strežnikov. Zagotovite, da pravila požarnega zidu dovoljujejo promet Performance Monitorja.
Poročanje med strežniki
Ustvarite poročila, ki primerjajo zmogljivost več strežnikov, da prepoznate odstopanja in neravnovesja zmogljivosti.
12. Spremljanje SQL Server v oblačnih okoljih
12.1 Spremljanje baze podatkov Azure SQL
Zbirka podatkov Azure SQL ponuja vgrajene zmogljivosti spremljanja, ki se razlikujejo od tistih na mestu uporabe. SQL Server.
Integracija Azure Monitorja
Azure Monitor samodejno zbira metrike iz baze podatkov Azure SQL, vključno z:
- Izkoriščenost DTU ali vCore
- Poraba pomnilnika
- Statistika povezav
- Zastoji in časovne omejitve
Do teh metrik dostopajte prek portala Azure ali API-ja Azure Monitor.
Vgrajene funkcije spremljanja
Zbirka podatkov Azure SQL vključuje:
- Priporočila za samodejno uglaševanje
- Vpogled v učinkovitost delovanja poizvedb
- Inteligentni vpogledi za odkrivanje anomalij
- Vgrajeno opozarjanje in diagnostikaostics
Vpogled v učinkovitost delovanja poizvedb
Ta funkcija omogoča vizualizacijo poizvedb, ki najpogosteje porabljajo vire, analizo trajanja poizvedb in zgodovinske trende učinkovitosti delovanja. Do nje dostopate prek portala Azure v okviru vira zbirke podatkov SQL.
12.2 Orodja za spremljanje v oblaku
Platforme v oblaku ponujajo izvorne rešitve za spremljanje, optimizirane za njihova okolja:
- Azure Monitor in Application Insights za zbirko podatkov Azure SQL
- AWS CloudWatch za RDS SQL Server
- Spremljanje storitev Google Cloud za oblak SQL Server
Ta orodja se brezhibno integrirajo z oblačno infrastrukturo in zagotavljajo enotno spremljanje vseh oblačnih virov.
Hibridno spremljanje okolja
Za hibridne uvedbe, ki zajemajo lokalno okolje in okolje v oblaku, uporabite orodja, ki podpirajo obe okolji, kot so Redgate SQL Monitor, SolarWinds DPA ali rešitve po meri, ki uporabljajo centralizirano zbiranje podatkov.
12.3 Razlike v zmogljivosti v oblaku
Cloud SQL Server okolja imajo edinstvene značilnosti:
Modeli dodeljevanja virov
Ponudniki storitev v oblaku uporabljajo različne metode dodeljevanja virov (DTU-ji, vCores, brezstrežniško delovanje), ki vplivajo na to, kako interpretirate meritve učinkovitosti delovanja. Razumejte omejitve in značilnosti svoje storitvene ravni.
Premisleki glede skaliranja
Oblačna okolja ponujajo dinamične zmogljivosti skaliranja. Spremljajte porabo virov, da ugotovite, kdaj je treba povečati ali zmanjšati obseg delovanja. Številne oblačne platforme omogočajo samodejno skaliranje na podlagi pragov zmogljivosti.
13. Avtomatizacija spremljanja učinkovitosti delovanja
13.1 SQL Server Zaposlitve agentov
Avtomatizirajte zbiranje podatkov z uporabo SQL Server Agentska opravila za dosledno spremljanje brez ročnega posredovanja.
Načrtovano zbiranje podatkov
- V SSMS razširi SQL Server Agent
- Z desno tipko miške kliknite Delovna mesta in izberite New Job
- Poimenujte opravilo (npr. »Zbiranje meritev uspešnosti«)
- klik Koraki in dodajte nov korak
- Nastavi vrsto na Skript Transact-SQL
- Vnesite skript za zbiranje podatkov
- klik Razporedi in dodajte urnik
- Konfigurirajte pogostost (npr. vsakih 5 minut)
- klik OK ustvariti delovno mesto
Avtomatizirano poročanje
Ustvarite opravila, ki ustvarjajo poročila o uspešnosti in jih pošiljajo po e-pošti:
- Ustvarite shranjeno proceduro, ki generira poročila
- Uporaba Database Mail za pošiljanje poročil po e-pošti
- Načrtujte delo tako, da se izvaja dnevno ali tedensko
13.2 Avtomatizacija PowerShella
PowerShell ponuja zmogljive zmogljivosti avtomatizacije za SQL Server monitor zmogljivosti.
Skripti za zbiranje števcev učinkovitosti delovanja
$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
Poizvedbe WMI
Uporabite WMI za zbiranje podatkov o učinkovitosti delovanja z oddaljenih strežnikov:
$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"
Samodejno opozarjanje
Ustvarite skripte PowerShell, ki preverjajo metrike in pošiljajo opozorila, ko so pragovi prekoračeni:
$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 Ustvarjanje nadzornih plošč za spremljanje
Za boljši vpogled si lahko podatke o uspešnosti ogledate z interaktivnimi nadzornimi ploščami.
Integracija Power BI
- Povežite Power BI s tabelami podatkov o učinkovitosti delovanja
- Ustvarjanje vizualizacij za ključne metrike
- Dodajte razčlenjevalnike za časovni obseg in izbiro strežnika
- Objava nadzornih plošč v storitvi Power BI
- Konfigurirajte urnike samodejnega osveževanja
Ustvarjanje nadzorne plošče v realnem času
Z orodji, kot je Grafana, ali spletnimi aplikacijami po meri ustvarite nadzorne plošče v realnem času, ki neposredno poizvedujejo po DMV-jih in števcih uspešnosti.
Vizualizacija zgodovinskih trendov
Zgradite črtne grafikone, ki prikazujejo trende skozi čas za:
- Izkoriščenost CPE
- Poraba pomnilnika
- Disk V/I
- Učinkovitost poizvedbe
- Število povezav
14. Študije primerov in praktični primeri
14.1 Študija primera: Reševanje pritiska spomina
Identifikacija simptomov
Produkcija SQL Server v času prometnih konic so se pojavljali počasni odzivi na poizvedbe. Uporabniki so se pritoževali nad časovnimi omejitvami aplikacij in slabšo zmogljivostjo.
Protianaliza
Razkriti podatki monitorja uspešnosti:
- Pričakovana življenjska doba strani se je zmanjšala na 50 sekund (normalno: >300)
- Razmerje zadetkov predpomnilnika je padlo na 85 % (normalno: >99 %)
- Vrednosti »Pomnilniške dodelitve v teku« so pogosto prikazovale vrednosti od 5 do 10.
- Število branj na fizični disk/s se je znatno povečalo
Koraki za reševanje
- Preverjeno SQL Server nastavitev največjega pomnilnika – ugotovil sem, da je nastavljena na privzeto (neomejeno)
- Pregledan skupni pomnilnik strežnika v primerjavi Tarpridobitev pomnilnika strežnika – pokazala je znatno vrzel
- Največji pomnilnik strežnika je konfiguriran tako, da je za operacijski sistem na voljo 8 GB.
- Omogočeno dovoljenje »Zakleni strani v pomnilniku« za SQL Server storitveni račun
- Strežniku je bilo dodanih 32 GB dodatnega RAM-a
- Spremljana uspešnost en teden – pričakovana življenjska doba strani se je stabilizirala nad 500 sekundami
Rezultat: Odzivni časi poizvedb so se izboljšali za 60 %, pritožbe uporabnikov so prenehale in delovanje aplikacije se je vrnilo v normalno stanje.
14.2 Študija primera: Optimizacija zmogljivosti procesorja
Identifikacija simptomov
A SQL Server je med delovnim časom nenehno kazal izkoriščenost procesorja nad 90 %, kar je povzročalo počasno delovanje aplikacij in frustracije uporabnikov.
Protianaliza
Spremljanje uspešnosti je pokazalo:
- % Čas procesorja je bil povprečno 92 % s pogostimi skoki do 100 %
- Dolžina čakalne vrste procesorja je bila dosledno nad 4 (strežnik je imel 8 jeder)
- Število prevajanj SQL/s je bilo 25 % paketnih zahtev/s (moralo bi biti <10 %)
- Število ponovnih prevajanj SQL/s je bilo 15 % paketnih zahtev/s
Koraki za reševanje
- Uporabljeni DMV-ji za prepoznavanje poizvedb, ki največ porabljajo CPU
- Analizirani izvedbeni načrti za identificirane poizvedbe
- Odkritih je bilo več pregledov tabel na velikih tabelah zaradi manjkajočih indeksov
- Ustvaril ustrezne indekse na podlagi priporočil izvedbenega načrta
- Prepoznan dinamični SQL, ki povzroča prekomerno prevajanje
- Spremenjena koda aplikacije za uporabo parametriziranih poizvedb
- Izveden vodnik po načrtih za problematične shranjene procedure
- Posodobljena statistika o pogosto uporabljenih tabelah
Rezultat: Izkoriščenost procesorja se je med delovnim časom znižala na povprečno 45 %. Časi izvajanja poizvedb so se izboljšali za 70 %. Odzivnost aplikacij se je znatno izboljšala.
14.3 Študija primera: Reševanje ozkega grla diskovnega V/I
Identifikacija simptomov
Uporabniki so poročali o izjemno počasnem odzivu aplikacije med nalaganjem podatkov in večerno paketno obdelavo.
Protianaliza
Podatki o uspešnosti so pokazali:
- Povprečni čas zapisovanja na disk v sekundah je presegel 45 ms na pogonu dnevnika transakcij
- Povprečna dolžina čakalne vrste na disku je bila 12 na pogonu s podatkovnimi datotekami
- % časa diska je med paketnimi opravili ostal nad 95 % več ur
- Število pisanj strani/s je bilo izjemno visoko
Koraki za reševanje
- Preverjene nastavitve pomnilnika so bile ustrezne – težav s pomnilnikom ni bilo.
- Analizirana konfiguracija diska – odkrite vse datoteke na istem naboru vreten
- Ločeni dnevniki transakcij na namenske hitre SSD diske
- Tempdb je bil premaknjen na ločene SSD diske.
- Implementiranih je bilo več podatkovnih datotek tempdb (ena na jedro)
- Nadgrajeni pogoni za podatkovne datoteke v konfiguracijo RAID 10 SSD
- Optimizirana paketna opravila za uporabo manjših transakcijskih paketov
- Dodani indeksi za zmanjšanje nepotrebnega skeniranja tabel med paketnimi operacijami
Rezultat: Povprečni čas na disku v sekundah/pisanje se je zmanjšal na 3 ms. Povprečna dolžina čakalne vrste diska je bila pod 1. Čas dokončanja paketnih opravil se je zmanjšal za 75 %.
15. Prihodnji trendi v SQL Server Spremljanje
15.1 Integracija umetne inteligence in strojnega učenja
Umetna inteligenca in strojno učenje se spreminjata SQL Server monitor zmogljivosti.
Napovedna analiza
Modeli strojnega učenja napovedujejo prihodnje potrebe po virih na podlagi zgodovinskih podatkov. Ti sistemi lahko napovedujejo:
- Kdaj bo skladiščna zmogljivost izčrpana
- Pričakovane zahteve glede procesorja in pomnilnika v času največjih obremenitev
- Zmanjšanje učinkovitosti delovanja poizvedb, preden to vpliva na uporabnike
- Optimalni časi za vzdrževalna dela
Zaznavanje anomalije
Orodja, ki jih poganja umetna inteligenca, samodejno zaznajo nenavadne vzorce v metrikah delovanja. Prepoznajo anomalije, ki bi jih človeški administratorji morda spregledali, in ločijo med običajnimi odstopanji in resničnimi težavami.
Samodejna sanacija
Samopopravljalni sistemi samodejno odpravijo pogoste težave, ko jih zaznajo:
- Restarstoritve, ki so se ustavile
- Prerazporedite vire med največjo obremenitvijo
- Uporaba hitrih popravkov za znane težave
- Samodejna obnova fragmentiranih indeksov
15.2 Razvoj spremljanja v oblaku
Spremljanje v oblaku se še naprej razvija z novimi zmogljivostmi.
Poenotene platforme za spremljanje
Sodobne platforme zagotavljajo vidljivost skozi eno samo stekleno ploščo na:
- Na kraju samem SQL Server primerov
- Cloud-hostpodatkovne baze
- Hibridna okolja
- Zmogljivost aplikacije
- Metrike infrastrukture
Trendi opazovanja
Prehod od spremljanja k opazovalnosti poudarja:
- Razumevanje vedenja sistema iz izhodov
- Povezovanje metrik, dnevnikov in sledi
- Poglobljen vpogled v porazdeljene sisteme
- Diagnoza težav v realnem času
15.3 Samoobnavljajoči se sistemi baz podatkov
Prihodnost SQL Server Različice bodo vključevale več avtonomnih zmogljivosti.
Samodejna optimizacija
Podatkovne baze se bodo nenehno optimizirale z:
- Samodejno ustvarjanje in brisanje indeksov glede na delovno obremenitev
- Prilagajanje konfiguracijskih nastavitev za optimalno delovanje
- Transparentno prepisovanje neučinkovitih poizvedb
- Dinamično upravljanje dodeljevanja virov
Inteligentno uglaševanje
Napredni sistemi se bodo učili iz vzorcev delovanja in samodejno uporabljali priporočila za nastavitev, s čimer se bo zmanjšala potreba po ročnem posredovanju administratorja baz podatkov.
16. Zaključek in ključni povzetki
16.1 Povzetek bistvenih praks spremljanja
Učinkovito SQL Server Monitor uspešnosti zahteva celovit pristop, ki združuje orodja, tehnike in najboljše prakse.
Povzetek kritičnih števcev
Osredotočite se na spremljanje teh bistvenih števcev:
- Pomnilnik: pričakovana življenjska doba strani, razmerje zadetkov predpomnilnika, čakajoče dodelitve pomnilnika
- CPU: % procesorski čas, dolžina čakalne vrste procesorja
- Disk: povprečno število sekund na disku/branje in pisanje, dolžina čakalne vrste diska
- SQL ServerPaketne zahteve/s, Prevajanja/s, Uporabniške povezave
Povzetek najboljših praks
- Vzpostavitev izhodišč med normalnim delovanjem
- Nastavite pragove inteligentnih opozoril na podlagi osnovnih vrednosti
- Redno pregledujte podatke o uspešnosti
- Spremljanje stanja s podrobnimi podatki
- Hranite dolgoročne podatke za analizo trendov
- Za vsak scenarij spremljanja uporabite ustrezna orodja
16.2 Pristop nenehnega izboljševanja
SQL Server Spremljanje uspešnosti ni enkratna dejavnost, temveč stalen proces, ki zahteva nenehno izpopolnjevanje.
Redni cikli pregledov
- Dnevno: Preverite opozorila in trenutno delovanje
- Tedensko: Pregled trendov in prepoznavanje nastajajočih težav
- Mesečno: Analizirajte dolgoročne vzorce in potrebe po zmogljivostih
- Četrtletno: Posodobitev izhodišč in pregled učinkovitosti spremljanja
Ostanite na tekočem z orodji
Poskrbite za posodabljanje orodij in tehnik spremljanja:
- Ocenite nove funkcije spremljanja v SQL Server Posodobitve
- Testiranje novih orodij tretjih oseb
- Udeležite se usposabljanj in konferenc
- Sodelujejo v SQL Server forumi skupnosti
- Delite znanje s člani ekipe
16.3 Naslednji koraki
Izvajati SQL Server sistematično spremljanje uspešnosti:
Načrt izvajanja
- Teden 1: Nastavite nadzor delovanja z bistvenimi števci
- Teden 2: Ustvarite nabore zbiralcev podatkov za avtomatizirano zbiranje
- Teden 3: Vzpostavitev izhodišč med normalnim delovanjem
- Teden 4: Konfigurirajte opozorila za kritične pragove
- Mesec 2: Implementirajte dodatna orodja za spremljanje (DMV, razširjeni dogodki)
- Mesec 3: Razvijte nadzorne plošče in poročila po meri
- V teku: Izboljšajte spremljanje na podlagi izkušenj in spreminjajočih se zahtev
Dodatni viri
Nadaljujte z učenjem o SQL Server spremljajte delovanje prek Microsoftove dokumentacije, blogov skupnosti in praktičnih vaj. Eksperimentirajte z različnimi orodji in tehnikami, da ugotovite, kaj najbolje deluje v vašem okolju.
17. Pogosto zastavljena vprašanja (FAQ)
17.1 Kaj so most Pomembno SQL Server števce uspešnosti za spremljanje?
Most kritično SQL Server Števci uspešnosti vključujejo:
- Pomnilnik: pričakovana življenjska doba strani (mora biti > 300 sekund) in razmerje zadetkov predpomnilnika (mora biti > 99 %)
- CPU: % procesorskega časa (trajne vrednosti <75 %) in dolžina čakalne vrste procesorja (mora biti <2 na jedro)
- Disk: Povprečno število sekund na disku/branje in pisanje (mora biti <10–20 ms) in dolžina čakalne vrste diska (mora biti <2 na disk)
- SQL ServerPaketne zahteve/s, prevajanja SQL/s in čakajoče dodelitve pomnilnika (mora biti 0)
Ti števci zagotavljajo celovit vpogled v stanje sistema in pomagajo hitro prepoznati ozka grla.
17.2 Kako pogosto naj zbiram podatke o uspešnosti?
Pogostost zbiranja je odvisna od vaših ciljev spremljanja:
- Osnovno spremljanje: Vsako 1 minuto (60 sekund)
- Aktivno odpravljanje težav: vsakih 15–30 sekund za krajša obdobja
- Dolgoročni trend: Vsakih 5 minut
Izogibajte se neprekinjenemu izvajanju visokofrekvenčnega zbiranja podatkov, saj lahko to vpliva na delovanje in ustvari prekomerno količino podatkov. Daljše intervale uporabljajte za rutinsko spremljanje, krajše intervale pa le pri preučevanju specifičnih težav.
17.3 Kakšna je razlika med monitorjem zmogljivosti in SQL Server Profiler?
Monitor učinkovitosti delovanja in SQL Server Profilerji služijo različnim namenom:
Performance Monitor:
- Spremlja sistem in SQL Server števci uspešnosti
- Spremlja porabo virov (CPU, pomnilnik, disk)
- Nizki režijski stroški, primerni za neprekinjeno spremljanje
- Zagotavlja agregirane meritve skozi čas
SQL Server profiler:
- Sledi posameznika SQL Server dogodki in poizvedbe
- Zajame podrobne informacije o izvajanju poizvedb
- Višji režijski stroški, ni priporočljivo za neprekinjeno uporabo
- Najboljše za odpravljanje težav s specifičnimi poizvedbami
- Zastarelo v korist razširjenih dogodkov
Za celoten nadzor sistema uporabite Performance Monitor, za podrobno analizo na ravni poizvedb pa Extended Events (ne Profiler).
17.4 Vpliv monitorja delovanja Can SQL Server izvedba?
Ko je pravilno konfiguriran, ima Performance Monitor minimalen vpliv na SQL Server zmogljivost, običajno manj kot 2 % režijske stroške. Vendar pa lahko pretirano spremljanje povzroči težave:
- Preveč števcev poveča režijske stroške
- Zelo kratki intervali vzorčenja (manj kot 15 sekund) obremenjujejo vire
- Neprekinjeno visokofrekvenčno zbiranje ustvarja velike datoteke dnevnika
Za zmanjšanje vpliva:
- Spremljajte samo potrebne števce
- Uporabite ustrezne intervale vzorčenja (60 sekund za rutinsko spremljanje)
- Shranjevanje dnevnikov na diskih ločeno od datotek baze podatkov
- Načrtujte spremljanje, ki zahteva veliko virov, v času izven konic
17.5 Kako dolgo naj hranim podatke o spremljanju uspešnosti?
Hramba je odvisna od vaših analitičnih potreb in zmogljivosti shranjevanja:
- minimalno: 3 mesece za odpravljanje nedavnih težav
- Priporočamo: 1–2 leti za načrtovanje zmogljivosti in analizo trendov
- Optimalno: Neomejeno, če shranjevanje dopušča, saj zgodovinski podatki sčasoma postanejo dragocenejši
Podatki števcev zmogljivosti se dobro stisnejo in porabijo relativno malo prostora. Razmislite o arhiviranju starejših podatkov v ločeno shrambo, namesto da jih izbrišete. Številne organizacije ugotavljajo, da so leta zgodovinskih podatkov neprecenljiva za načrtovanje zmogljivosti in prepoznavanje dolgoročnih trendov.
17.6 Katere so dobre mejne vrednosti za ključne števce uspešnosti?
Priporočene mejne vrednosti za opozarjanje:
- Dodelitve pomnilnika v teku: Opozorilo, ko > 0
- Pričakovana življenjska doba strani: Opozorilo, ko je manj kot 300 sekund
- % Čas procesorja: Opozorilo, ko je > 80 % za 5 minut
- Dolžina čakalne vrste procesorja: Opozorilo, ko je > 2 na jedro
- Povprečno branje ali pisanje na disku v sekundah: Opozorilo, ko > 20 ms
- Dolžina čakalne vrste diska: Opozorilo, ko je > 2 na disk
- Blokirani procesi: Opozorilo, ko > 5
Prilagodite te pragove glede na osnovne podatke in specifične značilnosti delovne obremenitve. Kar je normalno za eno okolje, lahko kaže na težave v drugem.
17.7 Kako spremljam SQL Server nastop na daljavo?
Daljinski upravljalnik za monitor SQL Server primeri uporabe teh metod:
- Performance Monitor: Pri dodajanju števcev navedite ime oddaljenega računalnika
- PowerShell: Uporaba parametra -ComputerName z ukazom Get-Counter
- DMV: Povežite se z oddaljenimi strežniki prek SSMS in poizvedujte v DMV-jih
- Orodja tretjih oseb: Most orodja za spremljanje podpirajo oddaljeno spremljanje strežnika
Zagotovite, da pravila požarnega zidu dovoljujejo promet programa Performance Monitor in da imate ustrezna dovoljenja na oddaljenem strežniku. Za več strežnikov razmislite o uvedbi centraliziranega spremljanja z namenskim strežnikom za spremljanje in bazo podatkov.
17.8 Katero je najboljše brezplačno orodje za SQL Server monitor zmogljivosti?
Za spremljanje je na voljo več odličnih brezplačnih orodij SQL Server izvedba:
- Nadzor delovanja sistema Windows: Vgrajen, celovit in zanesljiv
- Nadzornik aktivnosti SSMS: Spremljanje v realnem času brez dodatne namestitve
- Razširjeni dogodki: Vgrajeno lahkotno spremljanje dogodkov SQL Server
- sp_KdoJeAktiven: Priljubljena brezplačna shranjena procedura za podrobno spremljanje dejavnosti
- Nadzorna plošča DBA: Odprtokodno orodje za spremljanje s celovitimi funkcijami
- SQLWATCH: Odprtokodna programska oprema z možnostmi spremljanja v skoraj realnem času
Oblikaost organizacijam, Performance Monitor v kombinaciji z orodji SSMS in sp_WhoIsActive zagotavlja odlične zmogljivosti spremljanja brez dodatnih stroškov.ost.
17.9 Kako izvozim podatke PerfMon za analizo?
Izvozite podatke monitorja učinkovitosti delovanja z uporabo teh metod:
Izvozi v CSV:
- Odprite nadzor delovanja z naloženo datoteko dnevnika
- Z desno miškino tipko kliknite graf in izberite Shrani podatke kot
- Izberite Besedilna datoteka (ločena z vejicami) (.csv)
- Izberite lokacijo in shranite
- Odpri v Excelu za analizo
Uporabite ukaz Relog:
relog input.blg -f csv -o output.csv
Ta pripomoček ukazne vrstice pretvori binarne datoteke dnevnika (.blg) v obliko CSV za lažjo analizo v aplikacijah za preglednice.
17.10 Kdaj naj namesto vgrajenih možnosti uporabim orodja za spremljanje drugih ponudnikov?
Razmislite o orodjih drugih ponudnikov, kadar:
- Upravljanje velikega števila SQL Server primerki (10+)
- Zahteva po centraliziranem spremljanju v več podatkovnih centrih
- Potrebujete napredne funkcije, kot sta napovedna analitika ali odkrivanje anomalij
- Želja po integriranem opozarjanju s sistemi za upravljanje incidentov
- Zahteva po poročanju o skladnosti in zgodovinski analizi
- Pomanjkanje virov administratorja baz podatkov za gradnjo in vzdrževanje rešitev po meri
- Spremljanje heterogenih okolij baz podatkov (SQL Server, Oracle, MySQL itd.)
Vgrajena orodja so primerna za manjša okolja ali kadar imate usposobljene skrbnike baz podatkov, ki lahko razvijejo rešitve za spremljanje po meri. Orodja drugih ponudnikov zagotavljajo vrednost zaradi prihranka časa, naprednih funkcij in strokovne podpore.
18. Dodatni viri
18.1 Uradna dokumentacija
Microsoft ponuja obsežno dokumentacijo za SQL Server monitor zmogljivosti:
- SQL Server Dokumentacija za nadzor delovanja sistema Performance Monitor: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Dinamični pogledi upravljanja: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Razširjeni dogodki: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Shramba poizvedb: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Uglaševanje in spremljanje delovanja: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Priporočena orodja in prenosi
Osnovna orodja za SQL Server monitor zmogljivosti:
- Orodje PAL: https://github.com/clinthuffman/PAL
- sp_KdoJeAktiven: http://whoisactive.com/
- Nadzorna plošča DBA: https://dbadash.com/
- SQLWATCH: https://github.com/marcingminski/sqlwatch
- Komplet prvega posredovalca (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 Viri skupnosti
Učite se od SQL Server skupnost:
- SQL Server Centralno: https://www.sqlservercentral.com/
- Blog Brenta Ozarja: https://www.brentozar.com/blog/
- SQL baraka: https://www.sqlshack.com/
- Nasveti za MSSQL: 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
Ti viri ponujajo vadnice, nasvete za odpravljanje težav in najboljše prakse izkušenih SQL Server strokovnjaki. Sodelovanje v forumih skupnosti vam pomaga, da se učite iz izkušenj drugih in delite svoje znanje.
O Author
Yuan Sheng je višji administrator baz podatkov (DBA) z več kot 10 leti izkušenj na področju SQL Server okolja in upravljanje poslovnih baz podatkov. Uspešno je rešil na stotine scenarijev obnovitve baz podatkov v finančnih storitvah, zdravstvu in proizvodnih organizacijah.
Yuan je specializiran za SQL Server obnovitev baze podatkov, rešitve z visoko razpoložljivostjoin optimizacijo delovanja. Njegove bogate praktične izkušnje vključujejo upravljanje večterabajtnih baz podatkov, implementacijo Skupine razpoložljivosti Always Onin razvoj avtomatiziranih strategij varnostnega kopiranja in obnovitve za poslovne sisteme, ki so ključnega pomena za poslovanje.
Yuan se s svojim tehničnim znanjem in praktičnim pristopom osredotoča na ustvarjanje celovitih vodnikov, ki pomagajo skrbnikom baz podatkov in IT-strokovnjakom reševati kompleksne SQL Server učinkovito se spopada z izzivi. Vedno je na tekočem z najnovejšimi SQL Server izdaje in Microsoftove razvijajoče se tehnologije baz podatkov, pri čemer redno testira scenarije obnovitve, da zagotovi, da njegova priporočila odražajo najboljše prakse iz resničnega sveta.
Imate vprašanja o SQL Server obnovitev ali potrebujete dodatna navodila za odpravljanje težav z zbirko podatkov? Yuan pozdravlja povratne informacije in predlogi za izboljšanje teh tehničnih virov.





























