Sisällysluettelo piiloutua

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.

Windowsin suorituskyvyn valvonta (PerfMon)

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:

  1. Napauta Aloita, tyyppi PerfMon Napsauta hakukentässä hakutuloksen ”Performand Monitor” -kohtaa:
    Hae ja käynnistä PerfMon Windowsin hakukentästä.
  2. lehdistö Windows + R, tyyppi PerfMon, ja paina enter
    Käynnistä PerfMon Windowsin suoritusikkunasta.
  3. Navigoida johonkin Ohjauspaneelin -> Järjestelmä ja suojaus -> Valvontatyökalut -> Performance Monitor
    Käynnistä PerfMon Ohjauspaneelista -> Järjestelmä ja suojaus -> Valvontatyökalut -> Suorituskyvyn valvonta

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:

  1. Avaa suorituskyvyn valvonta
  2. Laajentaa Tiedonkerääjäjoukot
  3. Napsauta hiiren kakkospainikkeella Käyttäjän määrittelemä
  4. valita Uusi -> Tiedonkerääjäjoukko
    Luo uusi tiedonkeruujoukko PerfMonissa
  5. Anna kuvaava nimi (esim.SQL Server Suorituskykymittarit”)
  6. valita Luo manuaalisesti (Lisäasetukset)
    Aseta tiedonkeruujoukon kuvausnimi
  7. Napauta seuraava
  8. Tarkistaa Luo datalokit -> Suorituskykylaskuri
    Valitse Luo datalokit -> Suorituskykylaskuri ohjatussa uuden tiedonkeruujoukon luontitoiminnossa.
  9. Napauta seuraava
  10. Napauta Lisää valita laskurit
  11. Lisää haluttu SQL Server ja järjestelmälaskurit.
    Lisää suorituskykylaskurit uuteen tiedonkeruujoukkoon.
  12. 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.

    Aseta näytteenottoväli uudessa tiedonkeruuasetusten ohjatussa toiminnossa.

  13. Napauta seuraava
  14. Valitse lokien tallennuspaikka
    Määritä suorituskykytietojen tallennussijainti uudessa tiedonkeruuasetusten ohjatussa toiminnossa.
  15. Napauta Suorittaa loppuun, luodaan uusi tiedonkeruujoukko.
  16. 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
    Aloita uusi tiedonkeruujoukko PerfMonissa.

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:

  1. Kun olet luonut tiedonkeruujoukon, napsauta sitä hiiren kakkospainikkeella ja valitse Kiinteistöt
  2. Valitse Pysäytysehto kieleke
  3. Enable Kokonaiskesto
  4. Aseta kestoksi 1 päivä (24 tuntia)
  5. Napauta OK säästää

Aseta tiedonkeruujoukon pysäytysehto

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:

  1. Napsauta hiiren kakkospainikkeella tiedonkeruujoukkoa ja valitse Kiinteistöt
  2. Valitse Aikataulu kieleke
  3. Napauta Lisää luodaksesi uuden aikataulun
  4. Määritä aloituspäivämäärä ja -aika
  5. Aseta toistumismalli (esim. päivittäin)
  6. Napauta OK tallentaaksesi aikataulun

Aseta tiedonkeruujoukkojen aikataulu

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:

  1. Avaa suorituskyvyn valvonta
  2. Laajentaa Suorituskykylokit ja hälytykset vasemmassa ruudussa
  3. Napsauta hiiren kakkospainikkeella Laskurilokit
  4. valita Uudet lokiasetukset
  5. Nimeä loki tietokantapalvelimesi nimellä (esim. ”ProductionSQL01”).
  6. 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:

  1. Valitse Lisää laskurit nappia
  2. Muuta tietokoneen nimi osoittamaan omaan SQL Server esimerkki
  3. lehdistö Kieleke ladata käytettävissä olevat suorituskykyobjektit
  4. Valitse suorituskykyobjekti alasvetovalikosta (esim. Muisti)
  5. Valitse tietyt laskurit joukosta lista
  6. Valitse tarvittaessa instanssit (esim. yksittäiset prosessorit tai levyt)
  7. Napauta Lisää sisällyttää laskurin
  8. Toista kaikille halutuille laskureille
  9. 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:

  1. Etsi laskurin lokiominaisuuksista Näytedataa joka
  2. Aseta aikaväli (oletus on 15 sekuntia)
  3. Lähtötilanteen seurannassa käytä päivittäisessä keräyksessä 1 minuutin välein
  4. Vianmäärityksessä käytä lyhyille purskeille 15–30 sekunnin välejä
  5. 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:

  1. Valitse Lokitiedostot välilehti laskurilokkien ominaisuuksissa
  2. Muuta lokitiedoston tyyppi muotoon Tekstitiedosto (pilkulla erotettu) helppoa Excel-tuontia varten
  3. Napauta Configure
  4. Aseta tiedostopoluksi tietty sijainti (esim. jaettu PerformanceLogs-kansio)
  5. 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:

  1. Etsi laskurin lokiominaisuuksista Suorita nimellä
  2. Syötä verkkotunnuksesi käyttäjätunnus muodossa: VERKKOTUNNUS\käyttäjätunnus
  3. Napauta Aseta salasana
  4. Syötä ja vahvista salasanasi
  5. 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:

  1. Avaa suorituskyvyn valvonta
  2. Napsauta vasemmassa ruudussa Seurantatyökalut -> Performance Monitor.
  3. Napsauta hiiren kakkospainikkeella missä tahansa kaavioalueella
  4. valita Kiinteistöt
    Avaa PerfMonin ominaisuudet napsauttamalla hiiren kakkospainikkeella mitä tahansa kohtaa kaavioalueella.
  5. Valitse Lähde kieleke
  6. valita Lokitiedostot radiopainike
  7. Napauta Lisää
  8. Siirry lokitiedostoosi (.blg tai .csv)
  9. Valitse tiedosto ja napsauta avoin
    Aseta lokitiedosto grafiikan lähteeksi PerfMonissa.
  10. Käytä Aikahaarukka liukusäädintä valitaksesi analysoitavan ajanjakson
  11. Napauta OK sulkeaksesi Ominaisuudet-valintaikkunan
  12. Napsauta vihreää plus-kuvaketta lisätäksesi laskureita lokitiedostosta
    Napsauta vihreää plus-kuvaketta lisätäksesi laskureita lokitiedostosta PerfMonissa.
  13. Valitse näytettävät laskurit
    Lisää haluamasi laskurit PerfMon-grafiikkaan.
  14. 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:

  1. Avaa suorituskyvyn valvonta lokitiedosto ladattuna
  2. Napsauta hiiren kakkospainikkeella missä tahansa kaavioalueella
  3. valita Tallenna tiedot nimellä
  4. Valitse tiedostolle sijainti
  5. valita Tekstitiedosto (pilkuilla erotettu) (.csv) pudotusvalikosta
  6. Napauta Säästä
  7. Avaa CSV-tiedosto Excelissä

Vie tiedot tiedostoon PerfMonissa.

Muotoile viedyt tiedot parempaa analyysia varten:

  1. Poista puolityhjä rivi 2 ja tyhjennä solu A1
  2. Muotoile sarake A päivämääränä/kellonaikana
  3. Muotoile numeeriset sarakkeet käyttämällä nollaa desimaalia ja tuhaterottimena
  4. Etsi ja korvaa palvelinten nimet otsikoissa (esim. korvaa ”\\SERVERNAME” tyhjällä merkillä)
  5. Siivoa objektien nimet otsikoista (esim. ”Muisti”, ”Fyysinen levy”, ”Suoritin”)
  6. 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:

  1. Lisää 7 ​​tyhjää riviä laskentataulukon yläreunaan
  2. Lisää sarakkeeseen A otsikot: Keskiarvo, Mediaani, Min, Max, Keskihajonta
  3. Kirjoita soluun B2: =KESKIARVO(B9:B100) (säädä B100 viimeiseen tietoriviin)
  4. Kirjoita soluun B3: =MEDIAANI(B9:B100)
  5. Syötä soluun B4: =MIN(B9:B100)
  6. Syötä soluun B5: =MAX(B9:B100)
  7. Kirjoita soluun B6: =KESKIHAJONTA(B9:B100)
  8. Kopioi kaavat kaikkiin laskurisarakkeisiin
  9. 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 External Link

7.2 PAL-järjestelmän asentaminen

Asenna PAL seuraavasti:

  1. Lataa PAL-asennustiedosto GitHubista
  2. Suorita asennusohjelma
  3. Napauta seuraava tervetulonäytössä
  4. Tarkista ja hyväksy asennushakemisto
  5. Napauta seuraava jatkaa
  6. Napauta install aloittaaksesi asennuksen
  7. Odota asennus loppuun
  8. Napauta Suorittaa loppuun

7.3 Lokitiedostojen käsittely PAL:lla

Analysoi Performance Monitor -lokisi PAL-sovelluksella:

  1. Käynnistä PAL Käynnistä-valikosta tai asennushakemistosta
  2. Valitse Laskuriloki kieleke
  3. Napauta selailla valitaksesi .blg-tiedostosi
  4. Siirry suorituskyvyn valvonnan lokitiedostoon
  5. Napauta avoin
  6. Valitse Kynnystiedosto kieleke
  7. Valitse kynnysarvotiedosto alasvetovalikosta (esim. ”SQL Server 2016” )
  8. Valitse kysymykset kieleke
  9. Vastaa kysymyksiin järjestelmäkokoonpanostasi
  10. Määritä, onko sinun SQL Server onko OLTP tai tietovarasto
  11. Anna käytettävissä olevan RAM-muistin kokonaismäärä
  12. Valitse Tulostusvaihtoehdot kieleke
  13. Valitse HTML-raportin tulostushakemisto
  14. Tarkistaa HTML tulostusmuoto
  15. Valitse Suorittaa kieleke
  16. Tarkista valintasi
  17. Tarkistaa Aloita toteutus nyt
  18. 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:

  1. avoin SQL Server Management Studio (SSMS) ja muodosta yhteys palvelininstanssiisi
  2. Napsauta palvelimen nimeä hiiren kakkospainikkeella Object Explorerissa
  3. valita Activity Monitor
    Käynnistä Aktiviteettien seuranta kohdassa SQL Server ManagementStudio.

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.

Aktiivisuusmonitori sisään SQL Server

8.1.2 SQL Server Suorituskyvyn hallintapaneeli

SQL Server Management Studio sisältää sisäänrakennetut suorituskykyraportit:

  1. In SQL Server Management Studio (SSMS), napsauta hiiren kakkospainikkeella SQL Server instanssi Object Explorerissa
  2. valita Raportit -> Vakioraportit
  3. Valitse saatavilla olevista raporteista, kuten Suorituskyvyn hallintapaneeli
    Avaa suorituskyvyn koontinäyttö SQL Server ManagementStudio.

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.

Suorituskykymittaristo SQL Server Hallintostudio

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:

  1. In SQL Server Management Studio, napsauta Työkalut -> SQL Server Profiler
    Aloita SQL Server Profiloija sisään SQL Server ManagementStudio.

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.

SQL Server Profiler

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:

  1. In Objektienhallinta, laajenna palvelintasi ja siirry osoitteeseen Hallinta -> Laajennetut tapahtumat -> Istunnot
  2. Napsauta hiiren kakkospainikkeella Sessions Ja valitse Uuden istunnon ohjattu luonti
    Aloita uusi laajennettujen tapahtumien istunto kohdassa SQL Server ManagementStudio.
  3. 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.

Redgate SQL Server monitori

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.

SolarWinds SQL Server Seuranta-apuväline

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ä.

IDERA:n SQL Server Suorituskyvyn seurantatyökalu

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.

Sovellusten hallinnan SQL-valvonta

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:

  1. Suorituskykytietojen kerääminen normaalin toiminnan aikana vähintään viikon ajan
  2. Mittarien kerääminen sekä ruuhka-aikoina että niiden ulkopuolella
  3. Avainlaskurien tyypillisten arvojen dokumentointi
  4. Kausivaihteluiden kirjaaminen tarvittaessa
  5. 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:

  1. Tarkista suorittimen jononpituuden laskuri. Yli 2:n arvot ydintä kohden osoittavat suorittimen kuormitusta.
  2. Tarkista prosessorin aikaprosentti. Jatkuvat yli 75 %:n arvot viittaavat suorittimen pullonkaulaan.
  3. Etätyöpöytä SQL Server
  4. Avaa Tehtävienhallinta (Ctrl+Vaihto+Esc)
  5. Valitse prosessit kieleke
  6. Tarkistaa Näytä kaikkien käyttäjien prosessit
  7. Valitse prosessori sarakeotsikko suorittimen käytön mukaan lajittelua varten
  8. 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:

  1. Configure SQL Server maksimimuistiasetus, jotta käyttöjärjestelmälle jää riittävästi RAM-muistia (yleensä 4–8 Gt palvelimen koosta riippuen)
  2. Ota käyttöön ”Lukitse sivut muistissa” -käyttöoikeus kohteelle SQL Server palvelutili
  3. Lisää fyysistä RAM-muistia palvelimelle, jos muistipaine jatkuu.
  4. 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:

  1. Avaa Aktiviteettien valvonta SSMS:ssä
  2. Laajenna prosessit jakso
  3. Etsi prosesseja, joiden arvo ei ole nolla Estetty arvot
  4. Tunnista estävän istunnon tunnus
  5. 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

  1. Napsauta SSMS:ssä palvelimen nimeä hiiren kakkospainikkeella.
  2. valita Activity Monitor
  3. Laajentaa Viimeaikaiset kalliit kyselyt
  4. 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

  1. Avaa SSMS:ssä uusi kyselyikkuna
  2. Napauta Näytä arvioitu toteutussuunnitelma (Ctrl+L) tai Sisällytä varsinainen toteutussuunnitelma (Ctrl+M)
  3. Suorita kyselysi
  4. Tarkista kalliiden toimintojen toteutussuunnitelma
  5. 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

  1. Napsauta tietokantaa hiiren kakkospainikkeella SSMS-objektien hallinnassa.
  2. valita Kiinteistöt
  3. Valitse Kyselykauppa sivulla
  4. In Toimintatila (pyydetty)valitse Lukea kirjoittaa
  5. Määritä lisäasetuksia tarpeen mukaan
  6. Napauta OK

Kyselyiden suorituskyvyn seuranta

Käytä kyselytallennusraportteja Object Explorerin kautta:

  1. Laajenna tietokanta Object Explorerissa
  2. Laajentaa Kyselykauppa
  3. 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ä:

  1. Avaa kysely kyselysäilössä
  2. Napsauta haluamaasi suunnitelmaa hiiren kakkospainikkeella
  3. 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

  1. Laajenna SSMS:ssä SQL Server Agentti
  2. Napsauta hiiren kakkospainikkeella Työpaikat ja valitse Uusi työ
  3. Nimeä työ (esim. ”Kerää suorituskykymittareita”)
  4. Napauta Askeleet ja lisää uusi vaihe
  5. Aseta tyypiksi Transact-SQL-komentosarja
  6. Syötä tiedonkeruuohjelmasi
  7. Napauta aikataulut ja lisää aikataulu
  8. Määritä taajuus (esim. 5 minuutin välein)
  9. Napauta OK luoda työpaikka

Automaattinen raportointi

Luo töitä, jotka luovat ja lähettävät sähköpostitse suorituskykyraportteja:

  1. Luo tallennettu proseduuri, joka luo raportteja
  2. Käytä Database Mailia lähettääksesi raportteja sähköpostitse
  3. 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

  1. Yhdistä Power BI suorituskykytietotaulukoihisi
  2. Luo visualisointeja keskeisille mittareille
  3. Lisää osittajia aikavälille ja palvelimen valinnalle
  4. Julkaise koontinäyttöjä Power BI -palveluun
  5. 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

  1. tarkistettu SQL Server muistin maksimiasetus – havaitsi, että se oli asetettu oletusarvoon (rajaton)
  2. Palvelimen kokonaismuistin ja kohdepalvelimen muistin vertailussa havaittiin merkittävä ero
  3. Palvelimen muistin enimmäismääräksi on määritetty 8 Gt käyttöjärjestelmälle.
  4. Otettiin käyttöön ”Lukitse sivut muistiin” -käyttöoikeus kohteelle SQL Server palvelutili
  5. Palvelimelle lisätty 32 Gt RAM-muistia
  6. 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

  1. Käytettiin DMV:itä tunnistaakseen eniten prosessoria kuluttavat kyselyt
  2. Analysoidut suoritussuunnitelmat tunnistetuille kyselyille
  3. Useita taulukkoskannauksia löydettiin suurista taulukoista puuttuvien indeksien vuoksi
  4. Luotiin asianmukaiset indeksit toteutussuunnitelman suositusten perusteella
  5. Tunnistettu dynaaminen SQL, joka aiheuttaa liiallisia käännöksiä
  6. Muokattu sovelluskoodi käyttämään parametrisoituja kyselyitä
  7. Toteutettu suunnitelmaopas ongelmallisille tallennetuille proseduureille
  8. 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

  1. Vahvistetut muistiasetukset olivat oikein – muistiongelmia ei löytynyt
  2. Analysoitu levyn kokoonpano – kaikki tiedostot löytyivät samalta levysarjalta
  3. Erilliset tapahtumalokit erillisille nopeille SSD-levyille
  4. Siirretty tempdb erillisille SSD-levyille
  5. Toteutettu useita tempdb-datatiedostoja (yksi ydintä kohden)
  6. Päivitetyt datatiedostoasemat RAID 10 SSD -kokoonpanoon
  7. Optimoidut erätyöt pienempien tapahtumaerien käyttämiseen
  8. 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

  1. Viikko 1: Määritä suorituskyvyn valvonta tärkeillä laskureilla
  2. Viikko 2: Luo tiedonkeruujoukkoja automaattista keruuta varten
  3. Viikko 3: Lähtötasojen määrittäminen normaalin toiminnan aikana
  4. Viikko 4: Kriittisten kynnysarvojen hälytysten määrittäminen
  5. Kuukausi 2: Ota käyttöön lisävalvontatyökaluja (ajoneuvojen ajoneuvohallinto, laajennetut tapahtumat)
  6. Kuukausi 3: Kehitä mukautettuja koontinäyttöjä ja raportteja
  7. 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:

  1. Performance Monitor: Määritä etätietokoneen nimi laskureita lisättäessä
  2. PowerShell: Käytä -ComputerName-parametria Get-Counter-funktion kanssa
  3. Ajoneuvohallintokeskukset: Yhdistä etäpalvelimiin SSMS:n kautta ja kysely DMV:istä
  4. 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:

  1. Avaa suorituskyvyn valvonta lokitiedosto ladattuna
  2. Napsauta kaaviota hiiren kakkospainikkeella ja valitse Tallenna tiedot nimellä
  3. Valita Tekstitiedosto (pilkuilla erotettu) (.csv)
  4. Valitse sijainti ja tallenna
  5. 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:

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.