1. Johdanto SQL Server Performance Monitor
1.1 Mikä on SQL Server Suorituskyvyn näyttö?
SQL Server Suorituskyvyn seuranta on prosessi, jolla seurataan, analysoidaan ja hallitaan laitteesi suorituskykyä ja terveyttä. SQL Server tietokantoja. Se sisältää tietokantajärjestelmän eri osa-alueita koskevan tiedon keräämisen ja tulkitsemisen optimaalisen suorituskyvyn varmistamiseksi, ongelmien ehkäisemiseksi ja tietokannan kunnon ylläpitämiseksi.
Suorituskyvyn valvonta kattaa kyselyiden suoritusaikojen, resurssien käytön, indeksien suorituskyvyn, estojen ja lukkiutumien sekä tietokannan kasvumallien seurannan. Tämä jatkuva valvonta auttaa järjestelmänvalvojia tunnistamaan mahdolliset ongelmat ennen kuin ne vaikuttavat käyttäjiin tai liiketoimintaan.
1.2 Suorituskyvyn seurannan tärkeimmät hyödyt
Tehokas SQL Server suorituskykymonitori tarjoaa useita kriittisiä etuja:
- Ennakoiva ongelmien havaitseminen: Tunnista ja korjaa mahdolliset ongelmat ennen kuin ne vaikuttavat käyttäjiin tai liiketoimintaan
- Suorituskyvyn optimointi: Paikanna pullonkaulat ja tehottomuudet parantaaksesi tietokannan yleistä suorituskykyä
- Kapasiteettisuunnittelu: Ennusta resurssitarpeita ja suunnittele tulevaa kasvua historiallisten tietojen perusteella
- Vaatimustenmukaisuus ja turvallisuus: Varmista sääntelyvaatimusten noudattaminen ja epäilyttävän toiminnan havaitseminen
1.3 Yleisiä suorituskykyhaasteita
Ilman asianmukaista SQL-tietokannan suorituskyvyn valvontaa organisaatiot kohtaavat useita riskejä:
- Odottamaton seisokkiaika, joka häiritsee liiketoimintaa
- Sovelluksen heikko suorituskyky vaikuttaa käyttökokemukseen
- Tietojen menetys tai korruptio
- Tehoton resurssien käyttö johtaa tarpeettomiin kustannuksiin
- Turhautuneet käyttäjät ja mahdolliset tulonmenetykset
IDC:n vuonna 2023 tekemän tutkimuksen mukaan 65 % tietokannan suorituskykyongelmista johtuu huonoista valvonta- tai optimointikäytännöistä.
2. Windowsin suorituskyvyn valvonnan (PerfMon) ymmärtäminen
2.1 Mikä on Windowsin suorituskyvyn valvonta?
Windowsin suorituskyvyn valvonta (PerfMon) on sisäänrakennettu Windows-työkalu, joka valvoo järjestelmäresursseja ja sovellusten suorituskykyä. SQL Server järjestelmänvalvojille PerfMon tarjoaa arvokasta tietoa sekä käyttöjärjestelmästä että SQL Server mittarit, mikä tekee niistä välttämättömiä kattavalle suorituskykyanalyysille.
PerfMon mittaa suorituskykytilastoja säännöllisin väliajoin ja tallentaa ne tiedostoihin myöhempää analyysia varten. Tietokannan ylläpitäjät voivat valita aikavälin, tiedostomuodon ja seurattavat tilastot. Työkalu ei ole SQL Server-kohtainen – järjestelmänvalvojat käyttävät sitä Windowsin, Exchangen, tiedostopalvelimien ja kaikkien pullonkaulojen mahdollisesti aiheuttavien sovellusten valvontaan.
2.2 Suorituskyvyn valvonnan käynnistäminen
Voit käynnistää Performance Monitorin useilla tavoilla:
- Napauta Aloita, tyyppi PerfMon Napsauta hakukentässä hakutuloksen ”Performand Monitor” -kohtaa:
- lehdistö Windows + R, tyyppi PerfMon, ja paina enter
- Navigoida johonkin Ohjauspaneelin -> Järjestelmä ja suojaus -> Valvontatyökalut -> Performance Monitor
3. Oleellinen SQL Server Suorituskykylaskurit
3.1 Muistin suorituskykylaskurit
Muistilaskurit ovat kriittisiä seurannan kannalta SQL Server suorituskykyä, koska ne osoittavat, onko tietokannassasi riittävästi muistiresursseja.
Käytettävissä olevat megatavut
Tämä laskuri näyttää välittömästi käytettävissä olevan fyysisen muistin määrän. Sen tulisi pysyä melko vakiona eikä mieluiten laskea alle 4096 Mt:n. Matalat arvot voivat viitata siihen, että SQL Servern maksimimuistin asetus jätetään oletusarvoiseksi tai ei-SQL Server sovellukset kuluttavat muistia.
Sivun elinajanodote
Sivun elinajanodote mittaa, kuinka kauan (sekunteina) sivu pysyy puskurivarastossa ilman, että siihen viitataan. Normaali arvo on 300 sekuntia tai enemmän. Pienemmät arvot osoittavat muistin ruuhkaa ja liiallista puskurin vaihtuvuutta, mikä heikentää välimuistin tehokkuutta.
Puskurivälimuistin osumissuhde
Tämä laskuri osoittaa prosenttiosuuden datapyyntöihin, joihin on vastattu käyttämällä SQL-puskurivälimuistia (muistia) levyltä lukemisen sijaan. Se on yleensä 99 % tai enemmän. Pienemmät arvot viittaavat siihen, että SQL Server tarvitsee lisää muistia tai lämpenee edelleen uudelleenkäynnistyksen jälkeen.
Muistiapurahat vireillä
Tämä näyttää muistia odottavien prosessien määrän SQL ServerNormaaliolosuhteissa tämän arvon tulisi olla jatkuvasti 0. Korkeammat arvot osoittavat riittämätöntä muistin allokointia SQL Server.
Kohdepalvelimen muisti vs. palvelimen kokonaismuisti
Kohdepalvelimen muisti osoittaa ihanteellisen muistimäärän SQL Server haluaa käyttää. Palvelimen kokonaismuisti näyttää, mitä SQL Server käyttää tällä hetkellä. Näiden arvojen välisen suhteen pitäisi olla noin 1. Merkittävät erot voivat viitata muistin paineeseen tai riittämättömään käytettävissä olevaan muistiin.
3.2 Suorittimen suorituskykylaskurit
Suoritinlaskurit auttavat tunnistamaan suorittimen pullonkauloja ja ymmärtämään, miten SQL Server käyttää laskentaresursseja.
% Suorittimen aika
Tämä mittaa prosentteina kuluneen ajan, jonka prosessori käyttää ei-lepotilassa olevien säikeiden suorittamiseen. Aktiivisilla palvelimilla arvot voivat nousta jopa 100 prosenttiin, mutta jatkuva yli 70–75 prosentin käyttöaste viittaa tyypillisesti käyttäjien suorituskykyongelmiin. Puuttuvat tai riittämättömät indeksit aiheuttavat usein korkeaa suorittimen käyttöä.
% etuoikeutettua aikaa
Suorittimen aika jakautuu käyttäjätilan ja etuoikeutetun (ydin) tilan käsittelyyn. Kaikki levykäyttö ja I/O tapahtuvat ydintilassa. Jos tämä laskuri ylittää 25 %, järjestelmä todennäköisesti suorittaa liikaa I/O:ta. Normaaliarvot vaihtelevat 5 %:n ja 10 %:n välillä.
Suorittimen jonon pituus
Tämä laskuri näyttää säikeet, jotka odottavat suorittimen resursseja. Arvot ovat jatkuvasti yli 1 (paitsi SQL Server varmuuskopiopakkaus) osoittavat suorittimen kuormitusta. Tämä tarkoittaa usein, että koneeseen on asennettu muita sovelluksia SQL Server kone, joka rikkoo parhaita käytäntöjä.
Kontekstivaihtoja/sekunti
Tämä mittaa, kuinka usein prosessori vaihtaa säikeiden välillä. Liiallinen kontekstin vaihtaminen voi vaikuttaa suorituskykyyn ja osoittaa suurta järjestelmän kuormitusta.
3.3 Levyn I/O-suorituskykylaskurit
Levylaskimet ovat välttämättömiä SQL-suorituskyvyn seurannassa, koska levyn I/O:sta tulee usein ensisijainen pullonkaula tietokantajärjestelmissä.
% Levyaika
Tämä tallentaa prosenttiosuuden ajasta, jonka levy oli varattu luku-/kirjoitustoiminnoille. Jatkuvasti yli 85 %:n arvot osoittavat I/O-pullonkaulaa. Koska levy on paljon hitaampi kuin muisti, tämän mittarin pienentäminen parantaa suorituskykyä.
Keskimääräinen levyaika sekunnissa/luku ja keskimääräinen levyaika sekunnissa/kirjoitus
Nämä laskurit mittaavat luku- ja kirjoitustoimintojen keskimääräisen ajan (sekunteina). Jos keskiarvot ylittävät 10–20 ms, levyltä kestää liian kauan käsitellä tietoja. Tapahtumalokiasemilta vaaditaan erityisen nopeaa kirjoitusnopeutta.
Levyjonon pituus
Tämä näyttää keskeneräiset pyynnöt levyn lukemiseen/kirjoittamiseen. Jatkuvasti yli 2:n (tai 2 levyä kohden RAID-ryhmissä) olevat arvot osoittavat, että levy ei pysty vastaamaan I/O-pyyntöihin.
Levytavua/sekunti
Tämä valvoo tiedonsiirron nopeutta levylle ja levyltä. Jos tämä ylittää levyn nimelliskapasiteetin, tiedot alkavat kasaantua, mikä näkyy levyjonon pituuden kasvuna.
Levyn siirtoja sekunnissa
Tämä seuraa levylle tehtyjen luku-/kirjoitustoimintojen määrää. SQL Server Tiedon käyttö on tyypillisesti satunnaista, mikä on hitaampaa levyaseman lukupään liikkeen vuoksi. Varmista, että tämä arvo pysyy levyaseman enimmäisnopeuden alapuolella (yleensä 100/s vakiolevyillä).
3.4 SQL Server Tietyt laskurit
3.4.1 Puskurinhallinnan laskurit
Puskurinhallinnan laskurien valvonta SQL Servermuistipuskuritoiminnot:
- Sivun lukukerrat sekunnissa: Fyysisen tietokannan sivulukujen kumulatiivinen määrä
- Sivun kirjoituskertoja sekunnissa: Fyysisen tietokannan sivulle kirjoitettujen sivujen kumulatiivinen määrä
- Laiska kirjoittaa/sekunti: Laiskan kirjoittajan muistin vapauttamiseksi kirjoittamien puskurien määrä
- Tarkistuspisteen sivuja/sekunti: Tarkistuspisteen tai muiden kaikkien likaisten sivujen tyhjentämistä vaativien toimintojen tyhjentämät sivut
3.4.2 SQL-tilastolaskimet
Nämä laskurit antavat tietoa SQL Server kyselyn käsittely:
- Eräpyyntöjä sekunnissa: Palvelimen vastaanottamien SQL-eräpyyntöjen määrä. Tämä toimii palvelimen aktiivisuuden vertailuarvona.
- SQL-käännökset/sekunti: SQL-käännösten määrä. Sen tulisi olla enintään 10 % eräpyyntöjen kokonaismäärästä sekunnissa.
- SQL-uudelleenkäännöt sekunnissa: SQL-uudelleenkääntöjen määrä. Sen tulisi myös olla 10 % tai vähemmän eräpyyntöjen kokonaismäärästä sekunnissa.
3.4.3 Yleisten tilastojen laskurit
- Käyttäjäyhteydet: Järjestelmään yhdistettyjen käyttäjien määrä. Käytetään vertailuarvona yhteyksien kasvun seuraamiseen ajan kuluessa.
- Estetyt prosessit: Estettyjen prosessien nykyinen määrä. Ihannetapauksessa sen pitäisi olla 0
3.4.4 Muistinhallintaohjelman laskurit
- Muistiavustuksia vireillä: Työtilan muistin myöntämistä odottavien prosessien kokonaismäärä. Ihannetapauksessa arvo on 0.
4. Suorituskyvyn valvonnan määrittäminen SQL Server(Windows Vista / Server 2008 ja uudemmat)
Ensinnäkin meidän on luotava säilö laskurien hallintaa varten:
- Windows Vistassa / Server 2008:ssa ja uudemmissa versioissa voit luoda tiedonkeruujoukkoja tässä osiossa.
- Windows XP / Server 2003 ja aiemmissa versioissa voit luoda laskurilokeja kohdassa seuraava jakso.
4.1 Mitä ovat tiedonkeruujoukot?
Tiedonkeruujoukkojen avulla suorituskykylaskurit, tapahtumien jäljitystiedot ja järjestelmän kokoonpanotiedot voidaan järjestää yhteen keräysyksikköön. Ne tarjoavat enemmän joustavuutta kuin yksinkertaiset laskurilokit ja mahdollistavat automatisoidun, ajoitetun tiedonkeruun kattavaa SQL-tietokannan suorituskyvyn valvontaa varten.
4.2 Tiedonkeruujoukon luominen
Luo mukautettu tiedonkeruujoukko seurantaa varten SQL Server suorituskykylaskurit:
- Avaa suorituskyvyn valvonta
- Laajentaa Tiedonkerääjäjoukot
- Napsauta hiiren kakkospainikkeella Käyttäjän määrittelemä
- valita Uusi -> Tiedonkerääjäjoukko
- Anna kuvaava nimi (esim.SQL Server Suorituskykymittarit”)
- valita Luo manuaalisesti (Lisäasetukset)
- Napauta seuraava
- Tarkistaa Luo datalokit -> Suorituskykylaskuri
- Napauta seuraava
- Napauta Lisää valita laskurit
- Lisää haluttu SQL Server ja järjestelmälaskurit.
- Asettaa Näytteenottoväli
- Rutiiniseurantaan käytä 1 minuutti (60 sekuntia)
- Aktiiviseen vianmääritykseen käytä 15–30 sekuntia
- Vältä pitkäaikaisia, usein toistuvia tiedonkeruuoperaatioita, sillä ne voivat vaikuttaa suorituskykyyn ja tuottaa liikaa dataa.
- Napauta seuraava
- Valitse lokien tallennuspaikka
- Napauta Suorittaa loppuun, luodaan uusi tiedonkeruujoukko.
- Oletusarvoisesti uusi tiedonkeruujoukko ÄLÄ käynnistyy automaattisesti. Löydät sen vasemmasta paneelista kohdasta Suorituskyky -> Tiedonkerääjäjoukot -> Käyttäjän määrittelemä -> Tiedonkerääjäsi, napsauta sitä hiiren kakkospainikkeella ja valitse Aloita
4.3 Lisättävät avainlaskurit
- Muisti -> Käytettävissä oleva megatavu
- Fyysinen levy -> Keskim. levyaika sek/luku (kaikki esiintymät paitsi _Total)
- Fyysinen levy -> Keskim. levyaika sek/kirjoitus (kaikki esiintymät paitsi _Total)
- Fyysinen levy -> Levyn lukumäärä sekunnissa (kaikki esiintymät paitsi _Total)
- Fyysinen levy -> Levyn kirjoitusmäärä sekunnissa (kaikki esiintymät paitsi _Total)
- Suoritin -> Prosessorin aika (% prosessorin ajasta) (kaikki esiintymät paitsi _Total)
- SQLServer: Yleiset tilastot -> Käyttäjäyhteydet
- SQLServer: Muistinhallinta -> Muistimyynneissä on odotettavissa
- SQLServer: SQL-tilastot -> Eräpyynnöt/sekunti
- SQLServer: SQL-tilastot -> SQL-käännökset/sekunti
- SQLServer: SQL-tilastot -> SQL-uudelleenkäännöt/s
- Järjestelmä -> Suorittimen jonon pituus
4.4 Pysäytysehdojen asettaminen
Määritä pysäytysehdot estääksesi rajoittamattoman datan kasvun:
- Kun olet luonut tiedonkeruujoukon, napsauta sitä hiiren kakkospainikkeella ja valitse Kiinteistöt
- Valitse Pysäytysehto kieleke
- Enable Kokonaiskesto
- Aseta kestoksi 1 päivä (24 tuntia)
- Napauta OK säästää
Tämä varmistaa, että loki ei kasva liian suureksi ja käynnistyy automaattisesti uudelleen, jos se on ajoitettu.
4.5 Tiedonkeruun aikataulutus
Automatisoi tiedonkeruu varmistaaksesi johdonmukaisen seurannan:
- Napsauta hiiren kakkospainikkeella tiedonkeruujoukkoa ja valitse Kiinteistöt
- Valitse Aikataulu kieleke
- Napauta Lisää luodaksesi uuden aikataulun
- Määritä aloituspäivämäärä ja -aika
- Aseta toistumismalli (esim. päivittäin)
- Napauta OK tallentaaksesi aikataulun
Automaattista käynnistystä varten määritä tiedonkeruujoukko käynnistymään palvelimen käynnistyessä luomalla käynnistysliipaisin Windowsin tehtävien ajoituksessa.
5. Suorituskyvyn valvonnan määrittäminen SQL Server(Windows XP / Server 2003 ja aiemmat)
Windows XP:ssä / Server 2003:ssa ja aiemmissa versioissa voit luoda laskurilokeja, joiden avulla voit valita joukon suorituskykylaskureita ja kirjata ne tiedostoon säännöllisesti.
5.1 Laskurilokien luominen
Luo uusi laskuriloki seuraavasti:
- Avaa suorituskyvyn valvonta
- Laajentaa Suorituskykylokit ja hälytykset vasemmassa ruudussa
- Napsauta hiiren kakkospainikkeella Laskurilokit
- valita Uudet lokiasetukset
- Nimeä loki tietokantapalvelimesi nimellä (esim. ”ProductionSQL01”).
- Napauta OK aloittaaksesi konfiguroinnin
Luomalla erilliset laskurilokit kullekin palvelimelle voit testata suorituskykyä yksittäisillä palvelimilla keräämättä tietoja kaikista palvelimista samanaikaisesti.
5.2 Suorituskykylaskurien lisääminen
Kun olet luonut laskurilokin, lisää siihen ne suorituskykylaskurit, joita haluat seurata:
- Valitse Lisää laskurit nappia
- Muuta tietokoneen nimi osoittamaan omaan SQL Server esimerkki
- lehdistö Kieleke ladata käytettävissä olevat suorituskykyobjektit
- Valitse suorituskykyobjekti alasvetovalikosta (esim. Muisti)
- Valitse tietyt laskurit joukosta lista
- Valitse tarvittaessa instanssit (esim. yksittäiset prosessorit tai levyt)
- Napauta Lisää sisällyttää laskurin
- Toista kaikille halutuille laskureille
- Napauta lähellä kun valmis
5.3 Näytteenottovälien määrittäminen
Näytteenottoväli määrittää, kuinka usein Performance Monitor kerää tietoja. Määritä sopivat välit valvontatarpeidesi mukaan:
- Etsi laskurin lokiominaisuuksista Näytedataa joka
- Aseta aikaväli (oletus on 15 sekuntia)
- Lähtötilanteen seurannassa käytä päivittäisessä keräyksessä 1 minuutin välein
- Vianmäärityksessä käytä lyhyille purskeille 15–30 sekunnin välejä
- Napauta OK soveltaa
Muista, että lyhyemmät aikavälit tuottavat enemmän dataa, jota voi olla vaikeampi renderöidä ja analysoida. Suuremmat aikavälit saattavat jäädä huomiotta tärkeiden piikkien kanssa. Tasapainota datan tarkkuus tallennus- ja analyysivaatimusten kanssa.
5.4 Lokitiedostojen määrittäminen
Lokitiedostojen asianmukainen konfigurointi varmistaa, että tiedot tallennetaan tehokkaasti ja helposti:
- Valitse Lokitiedostot välilehti laskurilokkien ominaisuuksissa
- Muuta lokitiedoston tyyppi muotoon Tekstitiedosto (pilkulla erotettu) helppoa Excel-tuontia varten
- Napauta Configure
- Aseta tiedostopoluksi tietty sijainti (esim. jaettu PerformanceLogs-kansio)
- Napauta OK vahvistaa
Käytä lokien tallennukseen verkkoon yhdistettyä jaettua resurssia, jotta voit käyttää tiedostoja etänä ja jakaa niitä muiden käyttäjien kanssa.
5.5 Tunnusten määrittäminen
Määritä asianmukaiset tunnistetiedot, jotta Performance Monitor voi käyttää etänä SQL Server esiintymät:
- Etsi laskurin lokiominaisuuksista Suorita nimellä
- Syötä verkkotunnuksesi käyttäjätunnus muodossa: VERKKOTUNNUS\käyttäjätunnus
- Napauta Aseta salasana
- Syötä ja vahvista salasanasi
- Napauta OK säästää
Tämä sallii PerfMon-palvelun kerätä tilastoja käyttämällä verkkotunnuksesi käyttöoikeuksia omien tunnistetietojensa sijaan.
6. Suorituskyvyn monitorointitietojen analysointi
6.1 Lokitiedostojen tarkasteleminen suorituskyvyn valvonnassa
Suorituskyvyn valvonta voi näyttää tallennettujen lokitiedostojen historiatietoja:
- Avaa suorituskyvyn valvonta
- Napsauta vasemmassa ruudussa Seurantatyökalut -> Performance Monitor.
- Napsauta hiiren kakkospainikkeella missä tahansa kaavioalueella
- valita Kiinteistöt
- Valitse Lähde kieleke
- valita Lokitiedostot radiopainike
- Napauta Lisää
- Siirry lokitiedostoosi (.blg tai .csv)
- Valitse tiedosto ja napsauta avoin
- Käytä Aikahaarukka liukusäädintä valitaksesi analysoitavan ajanjakson
- Napauta OK sulkeaksesi Ominaisuudet-valintaikkunan
- Napsauta vihreää plus-kuvaketta lisätäksesi laskureita lokitiedostosta
- Valitse näytettävät laskurit
- Napauta OK
Kaavio näyttää nyt lokitiedoston historiatiedot. Käytä Ominaisuudet-kohdan Aikaväli-liukusäädintä rajataksesi tiettyjä ajanjaksoja yksityiskohtaista analyysia varten.
6.2 Tietojen vieminen Exceliin
Excel tarjoaa tehokkaita analysointiominaisuuksia suorituskykylaskuritiedoille:
- Avaa suorituskyvyn valvonta lokitiedosto ladattuna
- Napsauta hiiren kakkospainikkeella missä tahansa kaavioalueella
- valita Tallenna tiedot nimellä
- Valitse tiedostolle sijainti
- valita Tekstitiedosto (pilkuilla erotettu) (.csv) pudotusvalikosta
- Napauta Säästä
- Avaa CSV-tiedosto Excelissä
Muotoile viedyt tiedot parempaa analyysia varten:
- Poista puolityhjä rivi 2 ja tyhjennä solu A1
- Muotoile sarake A päivämääränä/kellonaikana
- Muotoile numeeriset sarakkeet käyttämällä nollaa desimaalia ja tuhaterottimena
- Etsi ja korvaa palvelinten nimet otsikoissa (esim. korvaa ”\\SERVERNAME” tyhjällä merkillä)
- Siivoa objektien nimet otsikoista (esim. ”Muisti”, ”Fyysinen levy”, ”Suoritin”)
- Pienennä otsikon fonttikokoa 8 pisteeseen paremman näkyvyyden saavuttamiseksi
6.3 Laskuriarvojen tulkinta
6.3.1 Muistilaskurin analyysi
Kun analysoit muistilaskureita, etsi näitä indikaattoreita:
- Käytettävissä olevat megatavut: Pitäisi pysyä jatkuvasti yli 4096 Mt:ssa
- Sivun odotettu käyttöikä: Yli 300 sekunnin arvot osoittavat tervettä muistia. Pienemmät arvot viittaavat muistin paineeseen.
- Puskurivälimuistin osumissuhde: Tulisi saavuttaa tai ylittää 99 %. Pienemmät arvot osoittavat liiallista levylukumäärää.
- Muistiavustuksia vireillä: Pitäisi aina olla 0. Mikä tahansa positiivinen arvo osoittaa muistin puutetta.
6.3.2 CPU-laskurin analyysi
Suorittimen suorituskykyindikaattoreihin kuuluvat:
- Prosessorin aika (%): Jatkuva yli 75 %:n käyttöaste viittaa suorituskykyongelmiin. Piikit 100 %:iin ovat normaaleja, mutta niiden ei pitäisi pysyä.
- Suorittimen jonon pituus: Yli 1:n arvot osoittavat suorittimen kuormitusta. Tarkista Tehtävienhallinnasta, mitkä prosessit kuluttavat suorittimen kuormitusta.
- % etuoikeutettua aikaa: Pitäisi pysyä 5–10 %:n välillä. Yli 25 %:n arvot viittaavat liialliseen I/O-toimintaan.
6.3.3 Levylaskurin analyysi
Levyn suorituskykykynnykset:
- Keskim. levyaika sekunnissa/luku ja kirjoitus: Pitäisi pysyä alle 10–20 ms. Korkeammat arvot osoittavat hitaita levyalijärjestelmiä.
- Levyjonon pituus: Jatkuvasti yli 2:n (tai 2 levyä kohden RAID-järjestelmässä) olevat arvot osoittavat I/O-pullonkauloja.
- % Levyaika: Jatkuvat yli 85 %:n arvot osoittavat levyn saturaatiota
6.4 Kaavojen ja tilastojen käyttö
Lisää tilastollisia kaavoja Exceliin nopeaa analyysia varten:
- Lisää 7 tyhjää riviä laskentataulukon yläreunaan
- Lisää sarakkeeseen A otsikot: Keskiarvo, Mediaani, Min, Max, Keskihajonta
- Kirjoita soluun B2: =KESKIARVO(B9:B100) (säädä B100 viimeiseen tietoriviin)
- Kirjoita soluun B3: =MEDIAANI(B9:B100)
- Syötä soluun B4: =MIN(B9:B100)
- Syötä soluun B5: =MAX(B9:B100)
- Kirjoita soluun B6: =KESKIHAJONTA(B9:B100)
- Kopioi kaavat kaikkiin laskurisarakkeisiin
- Valitse solu B9 ja paina Alt+W+F+Enter jäädyttääksesi ruudut
Nämä tilastot auttavat tunnistamaan kunkin laskurin trendit, poikkeamat ja normaalit toiminta-alueet.
7. Lokien suorituskykyanalyysityökalu (PAL)
7.1 Johdatus PAL-kieleen
Performance Analysis for Logs (PAL) on Clint Huffmanin kehittämä ilmainen työkalu, joka analysoi Performance Monitor -lokeja ja luo HTML-raportteja kynnysarvoanalyysin avulla. PAL vertaa suorituskykytietojasi tunnettuihin kynnysarvoihin ja tarjoaa yksityiskohtaisia suosituksia SQL Server suorituskyvyn optimointi.
Lataa PAL GitHub-arkistosta: https://github.com/clinthuffman/PAL
7.2 PAL-järjestelmän asentaminen
Asenna PAL seuraavasti:
- Lataa PAL-asennustiedosto GitHubista
- Suorita asennusohjelma
- Napauta seuraava tervetulonäytössä
- Tarkista ja hyväksy asennushakemisto
- Napauta seuraava jatkaa
- Napauta install aloittaaksesi asennuksen
- Odota asennus loppuun
- Napauta Suorittaa loppuun
7.3 Lokitiedostojen käsittely PAL:lla
Analysoi Performance Monitor -lokisi PAL-sovelluksella:
- Käynnistä PAL Käynnistä-valikosta tai asennushakemistosta
- Valitse Laskuriloki kieleke
- Napauta selailla valitaksesi .blg-tiedostosi
- Siirry suorituskyvyn valvonnan lokitiedostoon
- Napauta avoin
- Valitse Kynnystiedosto kieleke
- Valitse kynnysarvotiedosto alasvetovalikosta (esim. ”SQL Server 2016” )
- Valitse kysymykset kieleke
- Vastaa kysymyksiin järjestelmäkokoonpanostasi
- Määritä, onko sinun SQL Server onko OLTP tai tietovarasto
- Anna käytettävissä olevan RAM-muistin kokonaismäärä
- Valitse Tulostusvaihtoehdot kieleke
- Valitse HTML-raportin tulostushakemisto
- Tarkistaa HTML tulostusmuoto
- Valitse Suorittaa kieleke
- Tarkista valintasi
- Tarkistaa Aloita toteutus nyt
- Napauta Suorittaa loppuun
7.4 PAL-raporttien analysointi
Kun PAL on analysoinut sen, se luo HTML-raportin, joka sisältää seuraavat tiedot:
- Suorituskykyyn liittyvien ongelmien yhteenveto
- Yksityiskohtainen laskurianalyysi kaavioineen
- Kynnysarvojen ylitykset korostettu värillä
- Erityissuosituksia kullekin ongelmalle
- Historialliset trendit ja mallit
Raportissa käytetään värikoodausta vakavuuden osoittamiseen: punainen kriittisille ongelmille, keltainen varoituksille ja vihreä terveille mittareille. Tutustu jokaiseen osioon ymmärtääksesi suorituskyvyn pullonkaulat ja noudattaaksesi PAL:n optimointisuosituksia.
8. Vaihtoehtoinen SQL Server Seurantatyökalut
8.1 Sisäänrakennettu SQL Server Työkalut
8.1.1 SQL Server Activity Monitor
SQL Server Activity Monitor näyttää reaaliaikaista tietoa aiheesta SQL Server prosessit ja suorituskyky:
- avoin SQL Server Management Studio (SSMS) ja muodosta yhteys palvelininstanssiisi
- Napsauta palvelimen nimeä hiiren kakkospainikkeella Object Explorerissa
- valita Activity Monitor
Aktiviteettien valvonta näyttää prosessit, resurssien odotusajat, datatiedostojen I/O:n ja viimeaikaiset kalliit kyselyt. Se tarjoaa nopeita tietoja tietokannan nykyisestä toiminnasta, mutta ei tallenna historiatietoja.
8.1.2 SQL Server Suorituskyvyn hallintapaneeli
SQL Server Management Studio sisältää sisäänrakennetut suorituskykyraportit:
- In SQL Server Management Studio (SSMS), napsauta hiiren kakkospainikkeella SQL Server instanssi Object Explorerissa
- valita Raportit -> Vakioraportit
- Valitse saatavilla olevista raporteista, kuten Suorituskyvyn hallintapaneeli
Suorituskyvyn hallintapaneeli tarjoaa visuaalisia tietoja SQL Server instanssin suorituskyky, mukaan lukien järjestelmän suorittimen käyttöaste, nykyiset odottavat pyynnöt ja suorituskykymittarit. Pääset siihen Vakioraportit-valikon kautta.
8.1.3 SQL Server Profiler
SQL Server Profiler tallentaa ja analysoi SQL Server tapahtumat, kuten kyselyn suorittaminen, tapahtumatoiminnot ja kirjautumistoiminnot.
Aloittaa SQL Server profiloija:
- In SQL Server Management Studio, napsauta Työkalut -> SQL Server Profiler
Profiler aiheuttaa merkittäviä suorituskykyyn liittyviä lisäkustannuksia, joten käytä sitä harkiten ja mieluiten ruuhka-aikojen ulkopuolella. Useimmissa tilanteissa Extended Events tarjoaa paremman suorituskyvyn pienemmällä vaikutuksella.
8.1.4 Laajennetut tapahtumat
Laajennetut tapahtumat on kevyt suorituskyvyn seurantajärjestelmä, joka on sisäänrakennettu SQL ServerSe korvaa SQL Server Profilointilaite, jolla on parempi suorituskyky ja pienemmät käyttökustannukset.
Tärkeimpiä ominaisuuksia ovat:
- Tarkka tiettyjen tapahtumien seuranta
- Minimaalinen vaikutus suorituskykyyn
- Mukautettavat tapahtumaistunnot
- Integrointi SSMS:n ja muiden työkalujen kanssa
- Tuki monimutkaiselle suodatukselle ja aggregoinnille
Luo laajennettuja tapahtumaistuntoja SSMS:n kautta:
- In Objektienhallinta, laajenna palvelintasi ja siirry osoitteeseen Hallinta -> Laajennetut tapahtumat -> Istunnot
- Napsauta hiiren kakkospainikkeella Sessions Ja valitse Uuden istunnon ohjattu luonti
- Aloita uusi istunto noudattamalla ohjeita.
8.1.5 Dynaamiset hallintanäkymät (DMV)
DMV:t paljastavat yksityiskohtaisia palvelimen tilatietoja terveyden seurantaa, ongelmien diagnosointia ja suorituskyvyn hienosäätöä varten. Keskeisiä DMV:itä ovat:
- sys.dm_exec_query_stats: Kyselyn suorituskykytilastot
- sys.dm_os_wait_stats: Palvelimen suorituskykyyn vaikuttavat odotustyypit
- sys.dm_os_performance_counters: SQL Server suorituskykylaskurin tiedot
- sys.dm_exec_requests: Suoritetaan parhaillaan pyyntöjä
- sys.dm_exec_sessions: Aktiiviset käyttäjäistunnot
Kysele näitä näkymiä T-SQL:n avulla päästäksesi käsiksi reaaliaikaisiin suorituskykytietoihin ja historiallisiin mittareihin.
Peruskäyttö
-- 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 Kolmannen osapuolen valvontaratkaisut
Redgate SQL Monitor
Redgate SQL Monitor on erikoistunut valvontaan SQL Server ja Azure SQL -tietokantaympäristöissä. Se tarjoaa koko kiinteistön kattavan valvonnan, mukautettavat hälytykset ja koontinäytöt, yksityiskohtaiset raportointiominaisuudet ja integroinnin muiden Redgate-työkalujen kanssa.
SolarWinds SQL Server Seuranta-apuväline
SolarWinds SQL Server Monitoring Tool, joka tunnetaan myös nimellä SQL Sentry, on suunniteltu diagnosoimaan, ratkaisemaan ja estämään vakavia suorituskykyongelmia SQL Server.
IDERA:n SQL Server Suorituskyvyn seurantatyökalu
IDERA SQL Diagnostic Manager on tehokas SQL Server suorituskyvyn seurantatyökalu, joka on suunniteltu avustamaan ennakoivassa suorituskyvyn seurannassa, diagnostiikassa ja säädössä.
Sovellusten hallinnan SQL-valvonta
Applications Manager tarjoaa Microsoftin SQL Server Valvontatyökalu, joka tarjoaa hyödyllisiä IT-ratkaisuja. Se on suunniteltu valvomaan SQL-tietokantojen suorituskykyä ja samalla tunnistamaan vikoja ja ratkaisemaan ongelmia, jotka voivat johtaa organisaation toiminnan pysähtymiseen.
8.3 Avoimen lähdekoodin valvontatyökalut
DBA-komentoruutu
DBA Dash on ilmainen, avoimen lähdekoodin seurantatyökalu, joka tarjoaa tietoa SQL Server kunto, suorituskyky ja aktiivisuus. Se on erityisen hyödyllinen pienissä ja keskikokoisissa ympäristöissä ja sisältää päivittäiset tietokannan päätteiden tarkistukset, suorituskyvyn valvonnan ja kokoonpanon seurannan.
SQLWATCH
SQLWATCH tarjoaa hajautettua, lähes reaaliaikaista SQL Server 5 sekunnin tarkkuudella toimiva valvonta työkuormituspiikkien tallentamiseen. Se tukee Grafanaa reaaliaikaisia koontinäyttöjä ja Power BI:tä perusteellista analyysia varten. Työkalu tarjoaa laajat määritysvaihtoehdot, ei vaadi lainkaan ylläpitoa ja sen skaalautuvuus on rajatonta.
Opserver
Stack Exchangen kehittämä Opserver valvoo useita järjestelmiä, mukaan lukien SQL Server, Redis ja Elasticsearch. Se tarjoaa "kaikki palvelimet" -näkymän suorittimen, muistin, verkon ja laitteiston tilastoille koko infrastruktuurissasi.
sp_Kuka on aktiivinen
sp_WhoIsActive on Adam Machanicin luoma kattava toiminnanvalvontaan tarkoitettu tallennettu proseduuri. Se toimii kaikkien SQL Server versioista vuodesta 2005 nykyiseen julkaisuun asti, ja sitä käytetään laajalti mm. SQL Server Tietokannan pääkäyttäjät reaaliaikaista toiminnan seurantaa varten.
Käyttääksesi sp_WhoIsActive-funktiota, lataa se osoitteesta http://whoisactive.com/, asenna se tietokantaasi ja suorita:
EXEC sp_WhoIsActive
Proseduuri näyttää parhaillaan suoritettavat kyselyt, odotustiedot, estotiedot ja resurssien kulutuksen.
9. Parhaat käytännöt SQL Server Performance Monitor
9.1 Suorituskykytapojen määrittäminen
Suorituskyvyn vertailuarvot määrittävät normaalit toimintaparametrit SQL Server ympäristö. Ilman lähtötasoja et voi määrittää, osoittavatko nykyiset mittarit ongelmia vai edustavatko ne tyypillistä käyttäytymistä.
Luo perusviivat seuraavasti:
- Suorituskykytietojen kerääminen normaalin toiminnan aikana vähintään viikon ajan
- Mittarien kerääminen sekä ruuhka-aikoina että niiden ulkopuolella
- Avainlaskurien tyypillisten arvojen dokumentointi
- Kausivaihteluiden kirjaaminen tarvittaessa
- Lähtötilanteen tietojen tallentaminen vertailua varten tulevien mittareiden kanssa
Päivitä perusviivat neljännesvuosittain tai merkittävien infrastruktuurimuutosten, sovelluspäivitysten tai tietokantamuutosten jälkeen.
9.2 Asianmukaisten hälytyskynnysten asettaminen
Määritä älykkäät kynnysarvot saadaksesi merkityksellisiä hälytyksiä ilman, että ylikuormitat itseäsi ilmoituksilla:
- Muistia myönnetään odottamassa > 0 osoittaa muistipainetta
- Suorittimen jonon pituus > 2 ydintä kohden viittaa suorittimen pullonkaulaan
- Levy sekuntia/luku tai kirjoitus > 20 ms tarkoittaa hidasta I/O:ta
- Estetyt prosessit > 5 viestivät kilpailuongelmista
- Sivun käyttöikä < 300 sekuntia osoittaa muistin ruuhkaa
Säädä kynnysarvoja lähtötietojesi ja työkuorman ominaisuuksien perusteella. Käytä mukautuvia kynnysarvoja, jotka ottavat huomioon ympäristösi normaalit vaihtelut.
9.3 Säännöllinen tietojen tarkastelu ja analysointi
Aikatauluta säännöllisiä suorituskykyarviointeja trendien ja esiin nousevien ongelmien tunnistamiseksi:
- Päivittäin: Tarkista yleiset mittarit ja viimeisimmät hälytykset
- Viikoittain: Tee perusteellinen analyysi suorituskykytrendeistä
- Kuukausittain: Luo kattavia raportteja ja vertaa niitä lähtötilanteisiin
- Neljännesvuosittain: Tarkista kapasiteettisuunnittelu ja pitkän aikavälin trendit
Dokumentoi löydökset ja seuraa suorituskyvyn parannuksia ajan kuluessa.
9.4 Tasapainotuksen valvonnan yleiskustannukset
Seuranta itsessään kuluttaa resursseja, joten tasapainota tiedonkeruu suorituskykyyn kohdistuvien vaikutusten kanssa:
- Käytä jatkuvaan seurantaan 30–60 sekunnin välein
- Käytä 15 sekunnin välejä vain aktiiviseen vianmääritykseen
- Rajoita tiedonkerääjän kestoa liiallisen tiedonsiirron välttämiseksi
- Tallenna lokit erillisille asemille kuin tietokantatiedostot
- Arkistoi vanhat suorituskykytiedot hallittavien tiedostokokojen säilyttämiseksi
Oikein konfiguroituna suorituskyvyn valvonta lisää vain vähän resursseja, tyypillisesti alle 2 % järjestelmäresursseista.
9.5 Pitkäaikainen tietojen säilytys
Säilytä suorituskykytiedot merkityksellistä trendianalyysiä ja kapasiteettisuunnittelua varten:
- Säilytä suorituskykytietoja vähintään 1–2 vuoden ajalta
- Arkistoi tiedot erilliseen tallennustilaan 3–6 kuukauden kuluttua
- Pakkaa vanhemmat lokitiedostot tilan säästämiseksi
- Dokumentoi kaikki merkittävät tapahtumat tai muutokset, jotka vaikuttavat suorituskykyyn
Suorituskykylaskuritietojen suhteellisen pienen koon vuoksi niiden säilyttäminen määräämättömän ajan on usein mahdollista ja arvokasta pitkäaikaisessa analyysissä.
9.6 Integrointi DevOps-käytäntöihin
Tietokannan suorituskyvyn valvonnan sisällyttäminen CI/CD-putkiin:
- Sisällytä tietokannan suorituskykymittarit käyttöönoton validointiin
- Automatisoi uusien julkaisujen suorituskykytestaus
- Varmista, että koodimuutokset eivät vaikuta negatiivisesti suorituskykyyn
- Luo suorituskykyvertailuarvoja jokaiselle julkaisulle
- Integroi valvontahälytykset tapahtumien hallintajärjestelmiin
10. Yleisten suorituskykyongelmien vianmääritys
10.1 CPU-pullonkaulojen tunnistaminen
Suorittimen pullonkaulat ilmenevät hitaina kyselyjen vasteaikoina ja korkeana suorittimen käyttöasteena. Käytä näitä ohjeita suorittimen ongelmien diagnosointiin:
- Tarkista suorittimen jononpituuden laskuri. Yli 2:n arvot ydintä kohden osoittavat suorittimen kuormitusta.
- Tarkista prosessorin aikaprosentti. Jatkuvat yli 75 %:n arvot viittaavat suorittimen pullonkaulaan.
- Etätyöpöytä SQL Server
- Avaa Tehtävienhallinta (Ctrl+Vaihto+Esc)
- Valitse prosessit kieleke
- Tarkistaa Näytä kaikkien käyttäjien prosessit
- Valitse prosessori sarakeotsikko suorittimen käytön mukaan lajittelua varten
- Tunnista, mitkä prosessit kuluttavat suorittimen resursseja
Jos ei-SQL Server sovellukset käyttävät paljon prosessoria, poista ne tietokantapalvelimelta. Jos sqlservr.exe käyttää paljon prosessoria, tutki tilanne seuraavilla tavoilla:
- Tarkista SQL-käännökset sekunnissa ja SQL-uudelleenkäännöt sekunnissa. Yli 10 % eräpyyntöjen sekunnissa arvoista viittaa liialliseen käännökseen.
- Kysele sys.dm_exec_query_stats-tiedostosta CPU-intensiivisten kyselyiden tunnistamiseksi
- Tarkista toteutussuunnitelmat puuttuvien indeksien tai tehottomien toimintojen varalta
- Harkitse indeksien lisäämistä taulukoiden skannausten vähentämiseksi
10.2 Muistiongelmien diagnosointi
Muistiongelmat vaikuttavat merkittävästi SQL Server suorituskyky. Diagnosoi muistiongelmia näiden indikaattoreiden avulla:
Käytettävissä olevat muistipisteet
Jos käytettävissä olevien megatavujen määrä laskee jatkuvasti alle 100 megatavun, käyttöjärjestelmällä on muistin puute. Windows saattaa sivuttaa virheellisesti. SQL Server muistia levylle, mikä aiheuttaa suorituskyvyn heikkenemistä.
Alhainen sivun käyttöikä
Sivun käyttöikä alle 300 sekuntia osoittaa puskurivälimuistin suurta vaihtuvuutta. Tämä viittaa joko riittämättömään muistin allokointiin tai kyselyiden aiheuttamaan liialliseen muistikuormaan.
Alhainen puskurivälimuistin osumissuhde
Puskurivälimuistin osumissuhde alle 99 % tarkoittaa SQL Server lukee usein tietoja levyltä muistin sijaan. Tämä tapahtuu, kun puskurivarasto on liian pieni tai SQL Server lämpenee vielä uudelleenkäynnistyksen jälkeen.
Muistiapurahat vireillä
Mikä tahansa muistin myöntämistä odottavien kyselyiden arvo, joka on yli 0, tarkoittaa, että kyselyt odottavat muistin myöntämistä. Tämä edustaa kriittistä muistin puutetta, joka vaatii välitöntä huomiota.
Muistiongelmien ratkaisemiseksi:
- Configure SQL Server maksimimuistiasetus, jotta käyttöjärjestelmälle jää riittävästi RAM-muistia (yleensä 4–8 Gt palvelimen koosta riippuen)
- Ota käyttöön ”Lukitse sivut muistissa” -käyttöoikeus kohteelle SQL Server palvelutili
- Lisää fyysistä RAM-muistia palvelimelle, jos muistipaine jatkuu.
- Tunnista ja optimoi muistia vaativat kyselyt
10.3 Levyn I/O-ongelmien ratkaiseminen
Levyn I/O:sta tulee usein ensisijainen suorituskyvyn pullonkaula tietokantajärjestelmissä. Diagnosoi levyongelmia näillä menetelmillä:
Korkea levyjonon pituus
Jos levyjonon pituus on jatkuvasti yli 2 (tai 2 levyä kohden RAID-järjestelmässä), levyalijärjestelmä ei pysty pysymään I/O-pyyntöjen vauhdissa. Tämä luo odottavien toimintojen ruuhkan.
Liiallinen levyn latenssi
Keskimääräinen levyaika sekunnissa/luku- ja keskimääräinen levyaika sekunnissa/kirjoitusarvot, jotka ovat yli 10–20 ms, osoittavat hidasta levyn vasteaikaa. Tapahtumalokiasemat vaativat erityisen nopeaa suorituskykyä, mieluiten alle 5 ms kirjoitusajoissa.
Korkea levyaika
Jatkuva yli 85 %:n levyaika osoittaa levyn kyllästymistä. Levy käyttää suurimman osan ajastaan I/O-pyyntöjen käsittelyyn, ja vapaata kapasiteettia on jäljellä vain vähän.
Ennen kuin käsittelet levyongelmia, varmista, etteivät ne ole muistiongelmien oireita. Riittämätön muisti pakottaa SQL Server lukeakseen enemmän dataa levyltä, mikä keinotekoisesti paisuttaa levyn mittareita.
Aidon levyn I/O-ongelmien ratkaiseminen:
- Päivitä nopeampiin levyihin (SSD-levyihin kiintolevyjen sijaan)
- Ota käyttöön RAID-kokoonpanot paremman suorituskyvyn saavuttamiseksi
- Erota tietokantatiedostot, tapahtumalokit ja tempdb eri fyysisille asemille
- Lisää muistia vähentääksesi levyjen lukumääriä
- Optimoi indeksejä vähentääksesi tarpeetonta I/O:ta
- Tarkista ja optimoi heikosti toimivat kyselyt
10.4 Esteiden ja lukkiutumien käsittely
Esto tapahtuu, kun yhdessä istunnossa on lukituksia, jotka estävät muiden istuntojen jatkumisen. Seuraa näitä laskureita estämisongelmien tunnistamiseksi:
- Estetyt prosessit: Ideaalitilanteessa pitäisi olla 0
- Lukituksen odotusajat sekunnissa: Odotusaikoja vaativien lukituspyyntöjen määrä
- Keskimääräinen odotusaika: Lukitusodotusten keskimääräinen kesto
Eston tutkimiseksi:
- Avaa Aktiviteettien valvonta SSMS:ssä
- Laajenna prosessit jakso
- Etsi prosesseja, joiden arvo ei ole nolla Estetty arvot
- Tunnista estävän istunnon tunnus
- Tarkista estoa aiheuttavat kyselyt
Käytä sp_WhoIsActive-metodia yksityiskohtaisempaan estoanalyysiin. Liialliset wait_info-merkinnät viittaavat usein tempdb-kilpailuun tai esto-ongelmiin.
Vähentääksesi estoa:
- Minimoi transaktioiden kesto
- Käytä sopivia eristystasoja
- Lisää indeksejä lukituksen keston lyhentämiseksi
- Harkitse READ_COMMITTED_SNAPSHOT-funktion eristämistä
- Tarkista ja optimoi pitkään suoritettavia kyselyitä
10.5 Kyselyiden suorituskykyongelmat
Kalliiden kyselyiden tunnistaminen on olennaista SQL-suorituskyvyn seurannassa. Käytä näitä menetelmiä ongelmallisten kyselyiden löytämiseen:
Aktiviteettivalvonnan käyttäminen
- Napsauta SSMS:ssä palvelimen nimeä hiiren kakkospainikkeella.
- valita Activity Monitor
- Laajentaa Viimeaikaiset kalliit kyselyt
- Tarkista kyselyt, joilla on paljon prosessoritehoa, kestoa tai loogisia lukukertoja
Ajoneuvojen ajoneuvojen käyttö
Kysele sys.dm_exec_query_stats-tiedostosta resursseja kuluttavien kyselyiden tunnistamiseksi:
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
Toteutussuunnitelmien analysointi
- Avaa SSMS:ssä uusi kyselyikkuna
- Napauta Näytä arvioitu toteutussuunnitelma (Ctrl+L) tai Sisällytä varsinainen toteutussuunnitelma (Ctrl+M)
- Suorita kyselysi
- Tarkista kalliiden toimintojen toteutussuunnitelma
- Etsi taulukkoskannauksia, indeksitarkistuksia tai kalliita toimintoja
Optimoi kyselyt seuraavasti:
- Sopivien indeksien lisääminen
- Kyselyiden uudelleenkirjoittaminen kalliiden toimintojen välttämiseksi
- Tilastojen päivittäminen
- Käytetään tiettyjä sarakenimiä SELECT * -funktion sijaan
- Tarpeettomien DISTINCT- tai ORDER BY -lauseiden välttäminen
10.6 Vioittuneen tietokannan havaitseminen ja korjaaminen
Tietokannan vioittuminen voi aiheuttaa suorituskyvyn heikkenemistä, tietojen menetystä ja järjestelmävikoja. Vikaantumisen nopea havaitseminen ja korjaaminen on ratkaisevan tärkeää tietokannan terveyden ylläpitämiseksi.
Tietokannan vioittumisen ilmaisimet
Tarkkaile näitä merkkejä mahdollisesta korruptiosta:
- Virheilmoitukset kohdassa SQL Server virheloki (virhe 823, 824 tai 825)
- Odottamattomia sovellusvirheitä tiettyjä taulukoita käytettäessä
- Hidas kyselyiden suorituskyky aiemmin nopeissa kyselyissä
- SQL Server kaatumiset tai odottamattomat uudelleenkäynnistykset
- Epäilyttävät sivut näkyvät msdb.dbo.suspect_pages-taulukossa
DBCC CHECKDB:n käyttö tunnistukseen
DBCC TARKISTUSB on ensisijainen työkalu tietokannan vioittumisen havaitsemiseen. Suorita se säännöllisesti ongelmien havaitsemiseksi varhaisessa vaiheessa.
Epäilyttävien sivujen valvonta
SQL Server tallentaa epäilyttävät sivut automaattisesti msdb-tietokantaan:
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)
Palautetut rivit osoittavat vioittumisongelmia, jotka vaativat välitöntä huomiota.
Korruption ehkäisystrategiat
- Ota sivun vahvistus käyttöön tarkistussumma-asetuksella
- Pidä säännöllisiä tietokannan varmuuskopioita
- Käytä luotettavaa laitteistoa, jossa on virheenkorjaus
- Levyn kunnon valvonta valmistajan työkaluilla
- Aikatauluta säännölliset DBCC CHECKDB -ajot
- Pitää SQL Server päivitetty uusimmilla korjauksilla
Palautus- ja korjausvaihtoehdot
Jos vioittumista havaitaan, voit kokeilla sisäänrakennettua työkalua DBCC TARKISTUSB korjataksesi ne. Jos se epäonnistuu, käytä kolmannen osapuolen työkaluja, kuten DataNumen SQL Recovery joka pystyy käsittelemään vakavia korruptioita.
11. Edistyneet valvontatekniikat
11.1 Kyselytallennustilan valvonta
Kyselyvarasto, esitelty vuonna SQL Server 2016, tallentaa kyselyiden suorituskykytiedot automaattisesti. Se tarjoaa arvokasta tietoa kyselyiden toiminnasta, suoritussuunnitelmista ja suorituskykytrendeistä.
Kyselysäilön käyttöönotto
- Napsauta tietokantaa hiiren kakkospainikkeella SSMS-objektien hallinnassa.
- valita Kiinteistöt
- Valitse Kyselykauppa sivulla
- In Toimintatila (pyydetty)valitse Lukea kirjoittaa
- Määritä lisäasetuksia tarpeen mukaan
- Napauta OK
Kyselyiden suorituskyvyn seuranta
Käytä kyselytallennusraportteja Object Explorerin kautta:
- Laajenna tietokanta Object Explorerissa
- Laajentaa Kyselykauppa
- Valitse saatavilla olevista raporteista:
- Regressiiviset kyselyt
- Resurssien kokonaiskulutus
- Eniten resursseja kuluttavat kyselyt
- Pakotettujen suunnitelmien kyselyt
- Seuratut kyselyt
Suunnitelman regressiotunnistus
Kyselysäilö havaitsee automaattisesti, kun kyselyiden suoritussuunnitelmat muuttuvat ja suorituskyky heikkenee. Tarkista Regressiiviset kyselyt -raportti tunnistaaksesi kyselyt, joihin suunnitelman muutokset vaikuttavat.
Pakotetun suunnitelman hallinta
Kun kyselysäilö tunnistaa paremman suoritussuunnitelman, pakota SQL Server käyttää sitä:
- Avaa kysely kyselysäilössä
- Napsauta haluamaasi suunnitelmaa hiiren kakkospainikkeella
- valita Joukkojen suunnitelma
Tämä parantaa suorituskykyä välittömästi ilman koodimuutoksia.
11.2 Indeksin ylläpidon valvonta
Indeksin pirstaloituminen heikentää kyselyiden suorituskykyä ajan myötä. Valvo ja ylläpidä indeksejä säännöllisesti optimaalisen suorituskyvyn varmistamiseksi.
Pirstaloitumisen tarkistus
Käytä tätä kyselyä indeksin fragmentoitumisen tarkistamiseen:
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
Suorita tämä kysely ruuhka-aikojen ulkopuolella, koska se voi olla resursseja kuluttava.
Sivutiheyden analyysi
Sivutiheys osoittaa, kuinka täynnä hakemistosivut ovat. Alhainen tiheys tuhlaa tilaa ja heikentää suorituskykyä:
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
Uudelleenjärjestely vs. uudelleenrakentaminen
Valitse indeksin ylläpitotoiminnot fragmentoitumistasojen perusteella:
- Pirstoutuminen 10–30 %: Käytä ALTER INDEX REORGANIZE -komentoa
- Pirstaloituminen > 30 %: Käytä ALTER INDEX REBUILD -komentoa
- Pirstoutuminen < 10 %: Ei toimenpiteitä tarvita
Uudelleenjärjestelytoiminnot vaativat vähemmän resursseja ja ne voidaan suorittaa verkossa. Uudelleenrakennustoiminnot ovat perusteellisempia, mutta kuluttavat merkittävästi resursseja.
11.3 Tietokannan tilastotietojen päivitykset
Tietokannan tilastojen apua SQL Servern kyselyoptimoija luo tehokkaita suoritussuunnitelmia. Vanhentuneet tilastot johtavat heikkoon kyselyjen suorituskykyyn.
Automaattinen tilastojen uudelleenrakentaminen
Ota automaattiset tilastopäivitykset käyttöön:
ALTER DATABASE DatabaseName SET AUTO_UPDATE_STATISTICS ON ALTER DATABASE DatabaseName SET AUTO_CREATE_STATISTICS ON
Seurantatilastot Terveys
Tarkista, milloin tilastot on viimeksi päivitetty:
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
Päivitä tilastot manuaalisesti tarvittaessa:
UPDATE STATISTICS TableName WITH FULLSCAN
11.4 Mukautettujen suorituskykytietojen kerääminen
Luo mukautettuja suorituskyvyn valvontaratkaisuja kyselyillä suoraan sys.dm_os_performance_counters-taulukosta ja tallentamalla tulokset taulukoihin.
Mukautettujen kokoelmaskriptien luominen
Luo tallennettu proseduuri suorituskykylaskurin tietojen keräämiseksi:
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
sys.dm_os_performance_counters-funktion käyttäminen
Kyselyiden suorituskykylaskurit suoraan:
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
Historiallisten tietojen tallentaminen
Luo taulukko ajan kuluessa tapahtuvien suorituskykymittareiden tallentamiseksi:
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
Pivoted-tietojen tallennusmenetelmät
Tallenna tiedot pivot-muodossa, jossa on yksi rivi näytteenottoaikaa kohden ja yksi sarake laskuria kohden. Tämä vähentää tallennustilaa ja parantaa kyselyiden suorituskykyä verrattuna yhden rivin tallentamiseen laskuria ja näytettä kohden.
11.5 Usean palvelimen valvonta
Ympäristöihin, joissa on useita SQL Server tapauksissa ota käyttöön keskitetty valvonta.
Keskitetty valvontamenetelmä
- Luo erillinen valvontatietokanta erilliselle palvelimelle
- Kerää tiedot kaikilta palvelimilta keskitettyyn tietovarastoon
- Käyttää SQL Server Agentin työt kokoelmaskriptien suorittamiseksi
- Toteuta verkossa käytettävissä oleva suorituskykylaskurien kerääminen
Palvelimen etävalvonta
Määritä Performance Monitor keräämään tietoja etäpalvelimilta määrittämällä palvelimien nimet laskureita lisättäessä. Varmista, että palomuurisäännöt sallivat Performance Monitor -liikenteen.
Palvelinten välinen raportointi
Luo raportteja, jotka vertailevat useiden palvelimien suorituskykyä poikkeamien ja kapasiteetin epätasapainon tunnistamiseksi.
12. seuranta SQL Server pilviympäristöissä
12.1 Azure SQL -tietokannan valvonta
Azure SQL Database tarjoaa sisäänrakennettuja valvontaominaisuuksia, jotka eroavat paikallisista ratkaisuista SQL Server.
Azure Monitor -integraatio
Azure Monitor kerää automaattisesti mittareita Azure SQL -tietokannasta, mukaan lukien:
- DTU:n tai virtuaaliytimen käyttöaste
- tallennustilan käyttö
- Yhteystilastot
- Lukitukset ja aikakatkaisut
Käytä näitä mittareita Azure-portaalin tai Azure Monitor -rajapinnan kautta.
Sisäänrakennetut valvontaominaisuudet
Azure SQL -tietokanta sisältää:
- Automaattisen virityksen suositukset
- Kyselyn suorituskyvyn tiedot
- Älykkäät näkemykset poikkeavuuksien havaitsemiseen
- Sisäänrakennettu hälytys- ja diagnostiikkatoiminto
Kyselyn suorituskyvyn tiedot
Tämä ominaisuus tarjoaa visualisoinnin resursseja eniten kuluttavista kyselyistä, kyselyn keston analysoinnin ja historialliset suorituskykytrendit. Käytä sitä Azure-portaalin kautta SQL-tietokantaresurssisi alla.
12.2 Pilvinatiiviset valvontatyökalut
Pilvialustat tarjoavat natiiveja valvontaratkaisuja, jotka on optimoitu niiden ympäristöihin:
- Azure Monitor ja Application Insights Azure SQL -tietokannalle
- AWS CloudWatch RDS:lle SQL Server
- Google Cloud -valvonta pilvipalveluille SQL Server
Nämä työkalut integroituvat saumattomasti pilvi-infrastruktuuriin ja tarjoavat yhtenäisen valvonnan kaikille pilviresursseille.
Hybridiympäristön seuranta
Hybridikäyttöönotoissa, jotka kattavat sekä paikalliset että pilven, käytä työkaluja, jotka tukevat molempia ympäristöjä, kuten Redgate SQL Monitor, SolarWinds DPA tai mukautettuja ratkaisuja, jotka käyttävät keskitettyä tiedonkeruuta.
12.3 Suorituskykyerot pilvipalveluissa
pilvi SQL Server ympäristöillä on ainutlaatuisia ominaisuuksia:
Resurssien allokointimallit
Pilvipalveluntarjoajat käyttävät erilaisia resurssien allokointimenetelmiä (DTU:t, vCore-ratkaisut, palvelimettomat ratkaisut), jotka vaikuttavat suorituskykymittareiden tulkintaan. Ymmärrä palvelutasosi rajoitukset ja ominaisuudet.
Skaalausnäkökohdat
Pilviympäristöt tarjoavat dynaamisia skaalausominaisuuksia. Seuraa resurssien käyttöä määrittääksesi, milloin skaalata ylös tai alas. Monet pilvialustat tarjoavat automaattisen skaalauksen suorituskykykynnysten perusteella.
13. Suorituskyvyn seurannan automatisointi
13.1 SQL Server Agentin työpaikat
Automatisoi tiedonkeruu käyttämällä SQL Server Agenttityöt jatkuvaa valvontaa varten ilman manuaalisia toimia.
Ajoitettu tiedonkeruu
- Laajenna SSMS:ssä SQL Server Agentti
- Napsauta hiiren kakkospainikkeella Työpaikat ja valitse Uusi työ
- Nimeä työ (esim. ”Kerää suorituskykymittareita”)
- Napauta Askeleet ja lisää uusi vaihe
- Aseta tyypiksi Transact-SQL-komentosarja
- Syötä tiedonkeruuohjelmasi
- Napauta aikataulut ja lisää aikataulu
- Määritä taajuus (esim. 5 minuutin välein)
- Napauta OK luoda työpaikka
Automaattinen raportointi
Luo töitä, jotka luovat ja lähettävät sähköpostitse suorituskykyraportteja:
- Luo tallennettu proseduuri, joka luo raportteja
- Käytä Database Mailia lähettääksesi raportteja sähköpostitse
- Aikatauluta työ suoritettavaksi päivittäin tai viikoittain
13.2 PowerShell-automaatio
PowerShell tarjoaa tehokkaita automaatio-ominaisuuksia SQL Server suorituskykymonitori.
Suorituskykylaskureiden keräämisskriptit
$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-kyselyt
Käytä WMI:tä suorituskykytietojen keräämiseen etäpalvelimilta:
$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"
Automatisoitu hälytys
Luo PowerShell-skriptejä, jotka tarkistavat mittareita ja lähettävät hälytyksiä, kun kynnysarvoja ylitetään:
$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 Seurantapaneelien luominen
Visualisoi suorituskykydataa interaktiivisten koontinäyttöjen avulla saadaksesi parempia näkemyksiä.
Power BI -integrointi
- Yhdistä Power BI suorituskykytietotaulukoihisi
- Luo visualisointeja keskeisille mittareille
- Lisää osittajia aikavälille ja palvelimen valinnalle
- Julkaise koontinäyttöjä Power BI -palveluun
- Automaattisten päivitysaikataulujen määrittäminen
Reaaliaikaisen kojelaudan luominen
Käytä työkaluja, kuten Grafanaa, tai mukautettuja verkkosovelluksia luodaksesi reaaliaikaisia koontinäyttöjä, jotka kyselevät DMV:itä ja suorituskykylaskureita suoraan.
Historiallisten trendien visualisointi
Luo viivakaavioita, jotka näyttävät trendit ajan kuluessa:
- CPU: n käyttö
- Muistin käyttö
- Levyn I/O
- Kyselyn suorituskyky
- Yhteyksien määrä
14. Tapaustutkimuksia ja käytännön esimerkkejä
14.1 Tapaustutkimus: Muistipaineen ratkaiseminen
Oireiden tunnistaminen
Tuotanto SQL Server kokivat hitaita kyselyihin vastaamisen nopeuksia ruuhka-aikoina. Käyttäjät valittivat sovellusten aikakatkaisuista ja suorituskyvyn heikkenemisestä.
Vasta-analyysi
Suorituskyvyn monitoroinnin tiedot paljastettu:
- Sivun odotettu elinikä laski 50 sekuntiin (normaali: >300)
- Puskurivälimuistin osumissuhde laski 85 prosenttiin (normaali: >99 %)
- Odottavat muistin myöntämiset näyttivät usein arvoja 5–10
- Fyysisen levyn lukumäärä sekunnissa nousi merkittävästi
Ratkaisuvaiheet
- tarkistettu SQL Server muistin maksimiasetus – havaitsi, että se oli asetettu oletusarvoon (rajaton)
- Palvelimen kokonaismuistin ja kohdepalvelimen muistin vertailussa havaittiin merkittävä ero
- Palvelimen muistin enimmäismääräksi on määritetty 8 Gt käyttöjärjestelmälle.
- Otettiin käyttöön ”Lukitse sivut muistiin” -käyttöoikeus kohteelle SQL Server palvelutili
- Palvelimelle lisätty 32 Gt RAM-muistia
- Seurattu suorituskyky viikon ajan – Sivun elinajanodote vakiintui yli 500 sekunnin
Tulos: Kyselyihin vastaaminen kesti 60 %, käyttäjien valitukset loppuivat ja sovelluksen suorituskyky palautui normaaliksi.
14.2 Tapaustutkimus: Suorittimen suorituskyvyn optimointi
Oireiden tunnistaminen
A SQL Server osoitti jatkuvasti yli 90 %:n suorittimen käyttöastetta toimistoaikoina, mikä aiheutti sovellusten hidasta suorituskykyä ja käyttäjien turhautumista.
Vasta-analyysi
Suorituskyvyn seuranta paljasti:
- Prosessoriaika oli keskimäärin 92 %, ja sen käyttöaika nousi usein jopa 100 prosenttiin.
- Suorittimen jonon pituus jatkuvasti yli 4 (palvelimella oli 8 ydintä)
- SQL-käännökset sekunnissa olivat 25 % eräpyyntöjen määrästä sekunnissa (pitäisi olla <10 %)
- SQL-uudelleenkääntöjen määrä sekunnissa oli 15 % eräpyyntöjen määrästä sekunnissa
Ratkaisuvaiheet
- Käytettiin DMV:itä tunnistaakseen eniten prosessoria kuluttavat kyselyt
- Analysoidut suoritussuunnitelmat tunnistetuille kyselyille
- Useita taulukkoskannauksia löydettiin suurista taulukoista puuttuvien indeksien vuoksi
- Luotiin asianmukaiset indeksit toteutussuunnitelman suositusten perusteella
- Tunnistettu dynaaminen SQL, joka aiheuttaa liiallisia käännöksiä
- Muokattu sovelluskoodi käyttämään parametrisoituja kyselyitä
- Toteutettu suunnitelmaopas ongelmallisille tallennetuille proseduureille
- Päivitetyt tilastot paljon käytetyistä taulukoista
Tulos: Suorittimen käyttöaste laski keskimäärin 45 prosenttiin toimistoaikoina. Kyselyiden suoritusajat paranivat 70 prosenttia. Sovellusten vasteaika parani merkittävästi.
14.3 Tapaustutkimus: Levyn I/O-pullonkaulan ratkaisu
Oireiden tunnistaminen
Käyttäjät raportoivat erittäin hitaista sovellusten vasteajoista tiedonlatauksen ja iltaisen eräkäsittelyn aikana.
Vasta-analyysi
Suorituskykytiedot osoittivat:
- Keskimääräinen levyaika sekunnissa/kirjoitus ylitti 45 ms tapahtumalokiaseman kohdalla
- Levyjonon pituus keskimäärin 12 datatiedostoasemalla
- Levyajan prosenttiosuus pysyi yli 95 %:ssa tuntikausia erätöiden aikana
- Sivun kirjoitusnopeus sekunnissa oli poikkeuksellisen korkea
Ratkaisuvaiheet
- Vahvistetut muistiasetukset olivat oikein – muistiongelmia ei löytynyt
- Analysoitu levyn kokoonpano – kaikki tiedostot löytyivät samalta levysarjalta
- Erilliset tapahtumalokit erillisille nopeille SSD-levyille
- Siirretty tempdb erillisille SSD-levyille
- Toteutettu useita tempdb-datatiedostoja (yksi ydintä kohden)
- Päivitetyt datatiedostoasemat RAID 10 SSD -kokoonpanoon
- Optimoidut erätyöt pienempien tapahtumaerien käyttämiseen
- Lisätty indeksejä tarpeettomien taulukkotarkistusten vähentämiseksi eräajojen aikana
Tulos: Keskimääräinen levysekunti/kirjoitusaika laski 3 millisekuntiin. Levyjonon pituus oli keskimäärin alle yhden. Erätyön valmistumisaika lyheni 75 %.
15. Tulevaisuuden trendit SQL Server Seuranta
15.1 AI ja koneoppimisen integrointi
Tekoäly ja koneoppiminen mullistavat SQL Server suorituskykymonitori.
Ennakoiva Analytics
Koneoppimismallit ennustavat tulevia resurssitarpeita historiallisen datan perusteella. Nämä järjestelmät voivat ennustaa:
- Kun tallennuskapasiteetti on loppunut
- Odotetut suorittimen ja muistin vaatimukset ruuhka-aikoina
- Kyselyn suorituskyvyn heikkeneminen ennen kuin se vaikuttaa käyttäjiin
- Optimaaliset ajat huoltotoimenpiteille
Poikkeamien havaitseminen
Tekoälypohjaiset työkalut havaitsevat automaattisesti epätavallisia kaavoja suorituskykymittareissa. Ne tunnistavat poikkeavuuksia, joita ihmispääkäyttäjät saattavat olla huomaamatta, ja erottavat normaalit vaihtelut aidoista ongelmista.
Automaattinen korjaus
Itsekorjautuvat järjestelmät ratkaisevat automaattisesti yleisiä ongelmia, kun ne havaitaan:
- Käynnistä pysäytetyt palvelut uudelleen
- Resurssien uudelleenjako huippukuormituksen aikana
- Käytä tunnettujen ongelmien korjaustiedostoja
- Rakenna fragmentoituneet indeksit automaattisesti uudelleen
15.2 Pilvipohjaisen valvonnan kehitys
Pilvipalveluiden valvonta kehittyy jatkuvasti uusien ominaisuuksien myötä.
Yhtenäiset valvonta-alustat
Nykyaikaiset alustat tarjoavat yhden lasiruudun näkyvyyden seuraaviin kohteisiin:
- Paikan päällä SQL Server tapauksia
- Pilvipohjaiset tietokannat
- Hybridiympäristöt
- Sovelluksen suorituskyky
- Infrastruktuurimittarit
Havaittavuustrendit
Siirtyminen seurannasta havaittavuuteen korostaa:
- Järjestelmän käyttäytymisen ymmärtäminen tulosteiden perusteella
- Mittarien, lokien ja jälkien korrelointi
- Syvällistä tietoa hajautetuista järjestelmistä
- Reaaliaikainen ongelmandiagnoosi
15.3 Itsekorjaavat tietokantajärjestelmät
Tulevaisuus SQL Server versiot sisältävät enemmän autonomisia ominaisuuksia.
Automaattinen optimointi
Tietokannat optimoivat itseään jatkuvasti:
- Indeksien automaattinen luominen ja poistaminen työmäärän perusteella
- Kokoonpanoasetusten säätäminen optimaalisen suorituskyvyn saavuttamiseksi
- Tehottomien kyselyiden uudelleenkirjoittaminen läpinäkyvästi
- Resurssien allokoinnin dynaaminen hallinta
Älykäs viritys
Edistyneet järjestelmät oppivat suorituskykymalleista ja soveltavat säätösuosituksia automaattisesti, mikä vähentää manuaalisten tietokannan päättäjien puuttumisen tarvetta.
16. Johtopäätös ja tärkeimmät huomiot
16.1 Yhteenveto keskeisistä valvontakäytännöistä
Tehokas SQL Server Suorituskyvyn seuranta vaatii kokonaisvaltaisen lähestymistavan, jossa yhdistyvät työkalut, tekniikat ja parhaat käytännöt.
Kriittisten laskurien yhteenveto
Keskity seuraaviin olennaisiin laskureihin:
- Muisti: Sivun käyttöiän odotusarvo, Puskurivälimuistin osumissuhde, Vireillä olevat muistin myöntämiset
- CPU: % Suorittimen aika, Suorittimen jonon pituus
- Levy: Keskim. levyaika sekunnissa/luku ja kirjoitus, levyjonon pituus
- SQL ServerEräpyynnöt/sekunti, Käännökset/sekunti, Käyttäjäyhteydet
Parhaiden käytäntöjen yhteenveto
- Lähtötasojen määrittäminen normaalin toiminnan aikana
- Aseta älykkäät hälytyskynnykset lähtötasojen perusteella
- Tarkista suorituskykytiedot säännöllisesti
- Tasapainon valvonnan yleiskustannukset ja datan rakeisuus
- Säilytä pitkän aikavälin tiedot trendianalyysiä varten
- Käytä kuhunkin seurantatilanteeseen sopivia työkaluja
16.2 Jatkuvan parantamisen lähestymistapa
SQL Server Suorituskyvyn seuranta ei ole kertaluonteinen toimenpide, vaan jatkuva prosessi, joka vaatii jatkuvaa kehittämistä.
Säännölliset tarkistussyklit
- Päivittäin: Tarkista hälytykset ja nykyinen suorituskyky
- Viikoittain: Tarkastele trendejä ja tunnista esiin nousevia ongelmia
- Kuukausittain: Analysoi pitkän aikavälin trendejä ja kapasiteettitarpeita
- Neljännesvuosittain: Päivitä lähtötasot ja tarkista seurannan tehokkuus
Työkalujen ajan tasalla pysyminen
Pidä valvontatyökalut ja -tekniikat ajan tasalla:
- Arvioi uusia valvontaominaisuuksia SQL Server päivitykset
- Testaa uusia kolmannen osapuolen työkaluja
- Osallistu koulutuksiin ja konferensseihin
- Osallistua SQL Server yhteisön foorumeilla
- Jaa tietoa tiimin jäsenten kanssa
16.3 Seuraava vaihe
Toteuttaa SQL Server suorituskykyä seurataan systemaattisesti:
Toteutussuunnitelma
- Viikko 1: Määritä suorituskyvyn valvonta tärkeillä laskureilla
- Viikko 2: Luo tiedonkeruujoukkoja automaattista keruuta varten
- Viikko 3: Lähtötasojen määrittäminen normaalin toiminnan aikana
- Viikko 4: Kriittisten kynnysarvojen hälytysten määrittäminen
- Kuukausi 2: Ota käyttöön lisävalvontatyökaluja (ajoneuvojen ajoneuvohallinto, laajennetut tapahtumat)
- Kuukausi 3: Kehitä mukautettuja koontinäyttöjä ja raportteja
- Jatkuva: Tarkenna valvontaa kokemuksen ja muuttuvien vaatimusten perusteella
Lisäresurssit
Jatka oppimista aiheesta SQL Server Seuraa suorituskykyä Microsoftin dokumentaation, yhteisöblogien ja käytännön harjoitusten avulla. Kokeile erilaisia työkaluja ja tekniikoita löytääksesi parhaiten omaan ympäristöösi sopivan.
17. Usein kysytyt kysymykset (FAQ)
17.1 Mitkä ovat tärkeimmät SQL Server suorituskykylaskurit seurattavaksi?
Kriittisin SQL Server suorituskykylaskurit sisältävät:
- Muisti: Sivun käyttöiän odotusarvo (tulisi olla >300 sekuntia) ja Puskurivälimuistin osumissuhde (tulisi olla >99 %)
- CPU: Prosessorin aika (jatkuvat arvot <75 %) ja suorittimen jonon pituus (tulisi olla <2 ydintä kohden)
- Levy: Keskimääräinen levysekuntiluku- ja kirjoitusaika (tulisi olla <10–20 ms) ja levyjonon pituus (tulisi olla <2 levyä kohden)
- SQL ServerEräpyynnöt sekunnissa, SQL-käännökset sekunnissa ja muistin myöntämiset odottavat (pitäisi olla 0)
Nämä laskurit tarjoavat kattavan kuvan järjestelmän kunnosta ja auttavat tunnistamaan pullonkaulat nopeasti.
17.2 Kuinka usein minun tulisi kerätä suorituskykytietoja?
Keräystiheys riippuu seurantatavoitteistasi:
- Lähtötilanteen seuranta: Joka minuutti (60 sekuntia)
- Aktiivinen vianmääritys: Lyhyitä aikoja 15–30 sekunnin välein
- Pitkän aikavälin trendi: Joka 5. minuutti
Vältä jatkuvaa tiheää tiedonkeruua, sillä se voi vaikuttaa suorituskykyyn ja tuottaa liikaa dataa. Käytä pidempiä aikavälejä rutiinivalvontaan ja lyhyempiä aikavälejä vain tiettyjen ongelmien tutkimiseen.
17.3 Mitä eroa on suorituskykymonitorilla ja SQL Server Profiloija?
Suorituskyvyn valvonta ja SQL Server Profilointityökaluilla on eri käyttötarkoituksia:
Performance Monitor:
- Valvoo järjestelmää ja SQL Server suorituskykylaskurit
- Seuraa resurssien käyttöä (prosessori, muisti, levy)
- Alhainen käyttökulutus, sopii jatkuvaan valvontaan
- Tarjoaa koostettuja mittareita ajan kuluessa
SQL Server profiloija:
- Yksittäiset jäljet SQL Server tapahtumat ja kyselyt
- Tallentaa yksityiskohtaiset kyselyn suoritustiedot
- Korkeammat ylärajat, ei suositella jatkuvaan käyttöön
- Paras tiettyjen kyselyongelmien vianmääritykseen
- Vanhentunut ja tilalle laajennetut tapahtumat
Käytä Performance Monitoria järjestelmän yleiseen valvontaan ja Extended Eventsiä (ei Profileria) yksityiskohtaiseen kyselytason analyysiin.
17.4 Voiko suorituskykyvalvonnan vaikuttaa SQL Server esitys?
Oikein määritettynä suorituskyvyn valvonnalla on minimaalinen vaikutus SQL Server suorituskykyyn, tyypillisesti alle 2 % lisäkustannuksia. Liiallinen valvonta voi kuitenkin aiheuttaa ongelmia:
- Liian monet laskurit lisäävät yleiskuluja
- Hyvin lyhyet näytteenottovälit (alle 15 sekuntia) rasittavat resursseja
- Jatkuva tiheä tiedonkeruu tuottaa suuria lokitiedostoja
Vaikutuksen minimoimiseksi:
- Seuraa vain tarvittavia laskureita
- Käytä asianmukaisia näytteenottovälejä (60 sekuntia rutiiniseurannassa)
- Tallenna lokit asemille erillään tietokantatiedostoista
- Aikatauluta resursseja kuluttavaa valvontaa ruuhka-aikojen ulkopuolella
17.5 Kuinka kauan minun tulisi säilyttää suorituskyvyn seurantatietoja?
Säilytysaika riippuu analyysitarpeistasi ja tallennuskapasiteetistasi:
- Minimi: 3 kuukautta viimeaikaisten ongelmien vianmääritykseen
- Suositus: 1–2 vuotta kapasiteettisuunnitteluun ja trendianalyysiin
- Optimaalinen: Rajoittamattomana, jos tallennustila sallii, koska historialliset tiedot muuttuvat arvokkaammiksi ajan myötä
Suorituskykylaskuridata pakkautuu hyvin ja vie suhteellisen vähän tilaa. Harkitse vanhempien tietojen arkistointia erilliseen tallennustilaan niiden poistamisen sijaan. Monet organisaatiot kokevat vuosien historiallisen datan korvaamattomaksi kapasiteetin suunnittelussa ja pitkän aikavälin trendien tunnistamisessa.
17.6 Mitkä ovat hyviä kynnysarvoja keskeisille suorituskykylaskureille?
Suositellut hälytyskynnysarvot:
- Muistia odottavat luvat: Hälytys, kun > 0
- Sivun odotettu elinikä: Hälytys, kun < 300 sekuntia
- % Suorittimen aika: Hälytys, kun > 80 % 5 minuutin ajan
- Suorittimen jonon pituus: Hälytys, kun > 2 ydintä kohden
- Keskimääräinen levyaika sekunnissa/luku tai kirjoitus: Hälytys, kun > 20 ms
- Levyjonon pituus: Hälyttää, kun > 2 levyä kohden
- Estetyt prosessit: Hälytys, kun > 5
Säädä näitä kynnysarvoja lähtötietojesi ja työkuorman ominaisuuksien perusteella. Se, mikä on normaalia yhdessä ympäristössä, voi viitata ongelmiin toisessa.
17.7 Miten valvon SQL Server suorituskyky etänä?
Näytön kaukosäädin SQL Server näitä menetelmiä käyttävät tapaukset:
- Performance Monitor: Määritä etätietokoneen nimi laskureita lisättäessä
- PowerShell: Käytä -ComputerName-parametria Get-Counter-funktion kanssa
- Ajoneuvohallintokeskukset: Yhdistä etäpalvelimiin SSMS:n kautta ja kysely DMV:istä
- Kolmannen osapuolen työkalut: Useimmat valvontatyökalut tukevat palvelimen etävalvontaa
Varmista, että palomuurisäännöt sallivat Performance Monitor -liikenteen ja että sinulla on asianmukaiset käyttöoikeudet etäpalvelimeen. Jos palvelimia on useita, harkitse keskitetyn valvonnan käyttöönottoa erillisellä valvontapalvelimella ja tietokannalla.
17.8 Mikä on paras ilmainen työkalu SQL Server suorituskykymonitori?
Seurantaan on saatavilla useita erinomaisia ilmaisia työkaluja SQL Server esitys:
- Windowsin suorituskyvyn valvonta: Sisäänrakennettu, kattava ja luotettava
- SSMS-toimintaseuranta: Reaaliaikainen valvonta ilman lisäasennuksia
- Laajennetut tapahtumat: Kevyt tapahtumien valvonta sisäänrakennettuna SQL Server
- sp_Kuka on aktiivinen: Suosittu ilmainen tallennettu menettely yksityiskohtaiseen toiminnan seurantaan
- DBA-komentoketju: Avoimen lähdekoodin valvontatyökalu kattavilla ominaisuuksilla
- SQL-SELVITYS: Avoimen lähdekoodin lähes reaaliaikaiset valvontaominaisuudet
Useimmille organisaatioille Performance Monitor yhdistettynä SSMS-työkaluihin ja sp_WhoIsActiveen tarjoaa erinomaiset valvontaominaisuudet ilman lisäkustannuksia.
17.9 Miten vien PerfMon-tiedot analysointia varten?
Vie suorituskyvyn valvonnan tiedot näillä menetelmillä:
Vie CSV-tiedostoon:
- Avaa suorituskyvyn valvonta lokitiedosto ladattuna
- Napsauta kaaviota hiiren kakkospainikkeella ja valitse Tallenna tiedot nimellä
- Valita Tekstitiedosto (pilkuilla erotettu) (.csv)
- Valitse sijainti ja tallenna
- Avaa Excelissä analyysia varten
Käytä Relog-komentoa:
relog input.blg -f csv -o output.csv
Tämä komentorivityökalu muuntaa binääriset lokitiedostot (.blg) CSV-muotoon, jotta niitä on helpompi analysoida taulukkolaskentaohjelmissa.
17.10 Milloin minun pitäisi käyttää kolmannen osapuolen valvontatyökaluja sisäänrakennettujen vaihtoehtojen sijaan?
Harkitse kolmannen osapuolen työkaluja, kun:
- Suuren määrän hallinta SQL Server esiintymät (10+)
- Keskitetyn valvonnan vaatiminen useissa datakeskuksissa
- Tarvitsetko edistyneitä ominaisuuksia, kuten ennakoivaa analytiikkaa tai poikkeavuuksien havaitsemista
- Halutaan integroitu hälytysjärjestelmä tapahtumien hallintajärjestelmiin
- Vaatimustenmukaisuusraportoinnin ja historiallisen analyysin edellyttäminen
- Tietokannan ylläpitäjillä ei ole resursseja räätälöityjen ratkaisujen rakentamiseen ja ylläpitoon
- Heterogeenisten tietokantaympäristöjen valvonta (SQL Server, Oracle, MySQL jne.)
Sisäänrakennetut työkalut toimivat hyvin pienemmissä ympäristöissä tai silloin, kun sinulla on taitavia tietokannan ylläpitäjiä, jotka voivat kehittää mukautettuja valvontaratkaisuja. Kolmannen osapuolen työkalut tarjoavat lisäarvoa ajansäästön, edistyneiden ominaisuuksien ja ammattimaisen tuen kautta.
18. Lisäresurssit
18.1 Virallinen dokumentaatio
Microsoft tarjoaa kattavan dokumentaation aiheesta SQL Server suorituskykymonitori:
- SQL Server Suorituskyvyn valvonnan dokumentaatio: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Dynaamiset hallintanäkymät: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Laajennetut tapahtumat: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Kyselytallennustila: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Suorituskyvyn viritys ja seuranta: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
18.2 Suositellut työkalut ja ladattavat tiedostot
Välttämättömät työkalut SQL Server suorituskykymonitori:
- PAL-työkalu: https://github.com/clinthuffman/PAL
- sp_Kuka on aktiivinen: http://whoisactive.com/
- DBA-komentoketju: https://dbadash.com/
- SQL-SELVITYS: https://github.com/marcingminski/sqlwatch
- Ensiapupakkaus (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 Yhteisön resurssit
Opi SQL Server Yhteisö:
- SQL Server Central: https://www.sqlservercentral.com/
- Brent Ozarin blogi: https://www.brentozar.com/blog/
- SQL-mökki: https://www.sqlshack.com/
- MSSQL-vinkkejä: https://www.mssqltips.com/
- Redditin r/SQLServer: https://www.reddit.com/r/SQLServer/
- Pino ylivuoto SQL Server tunnisteet: https://stackoverflow.com/questions/tagged/sql-server
Nämä resurssit tarjoavat opetusohjelmia, vianmääritysneuvoja ja parhaita käytäntöjä kokeneilta SQL Server ammattilaisille. Yhteisöfoorumeille osallistuminen auttaa sinua oppimaan muiden kokemuksista ja jakamaan omaa tietämystäsi.
kirjailijasta
Yuan Sheng on kokenut tietokannan ylläpitäjä (DBA), jolla on yli 10 vuoden kokemus alalta SQL Server ympäristöissä ja yritystietokantojen hallinnassa. Hän on onnistuneesti ratkaissut satoja tietokantojen palautustilanteita rahoituspalveluissa, terveydenhuollossa ja valmistusorganisaatioissa.
Yuan on erikoistunut SQL Server tietokannan palautus, korkean käytettävyyden ratkaisutja suorituskyvyn optimointia. Hänen laaja käytännön kokemus kattaa usean teratavun tietokantojen hallinnan, käyttöönoton Aina käytettävissä olevat ryhmätja kehittämällä automatisoituja varmuuskopiointi- ja palautusstrategioita kriittisille liiketoimintajärjestelmille.
Teknisen asiantuntemuksensa ja käytännönläheisen lähestymistapansa avulla Yuan keskittyy luomaan kattavia oppaita, jotka auttavat tietokannan ylläpitäjiä ja IT-ammattilaisia ratkaisemaan monimutkaisia ongelmia. SQL Server haastaa tehokkaasti. Hän pysyy ajan tasalla uusimmista SQL Server julkaisuja ja Microsoftin kehittyviä tietokantateknologioita, testaten säännöllisesti palautusskenaarioita varmistaakseen, että hänen suosituksensa vastaavat todellisia parhaita käytäntöjä.
Onko sinulla kysyttävää SQL Server palautus tai tarvitsetko lisäohjeita tietokannan vianmääritykseen? Yuan toivottaa sinut tervetulleeksi palautetta ja ehdotuksia näiden teknisten resurssien parantamiseksi.





























