Oszd meg most:
Tartalomjegyzék elrejtése

1. Bevezetés a SQL Server teljesítmény monitor

1.1 Mi az SQL Server Teljesítményfigyelő?

SQL Server A teljesítményfigyelő az eszköz teljesítményének és állapotának nyomon követésére, elemzésére és kezelésére szolgáló folyamat. SQL Server adatbázisok. Ez magában foglalja az adatbázis-rendszer különböző aspektusaira vonatkozó adatok gyűjtését és értelmezését az optimális teljesítmény biztosítása, a problémák megelőzése és az adatbázis állapotának fenntartása érdekében.

A teljesítményfigyelés magában foglalja a lekérdezések végrehajtási idejének, az erőforrás-kihasználtságnak, az indexteljesítménynek, a blokkolásoknak és a holtpontoknak, valamint az adatbázis-növekedési mintáknak a nyomon követését. Ez a folyamatos felügyelet segít a rendszergazdáknak azonosítani a potenciális problémákat, mielőtt azok hatással lennének a felhasználókra vagy az üzleti műveletekre.

1.2 A teljesítménymonitorozás főbb előnyei

Hatékony SQL Server A teljesítményfigyelő számos fontos előnnyel jár:

  • Proaktív problémaészlelés: Azonosítsa és kezelje a lehetséges problémákat, mielőtt azok hatással lennének a felhasználókra vagy az üzleti műveletekre
  • Teljesítmény optimalizálás: A szűk keresztmetszetek és a hatékonyság hiányosságainak pontos meghatározása az adatbázis teljesítményének javítása érdekében
  • Kapacitás tervezés: Az erőforrásigények előrejelzése és a jövőbeli növekedés megtervezése a historikus adatok alapján
  • Megfelelőség és biztonság: A szabályozási követelmények betartásának biztosítása és a gyanús tevékenységek felderítése

1.3 Gyakori teljesítménybeli kihívások

Megfelelő SQL adatbázis teljesítményfigyelő nélkül a szervezetek számos kockázattal néznek szembe:

  • Váratlan leállás, amely megzavarja az üzleti tevékenységet
  • A gyenge alkalmazásteljesítmény befolyásolja a felhasználói élményt
  • Adatvesztés vagy adatsérülés
  • A nem hatékony erőforrás-felhasználás szükségtelen költségeket okozosts
  • Frusztrált felhasználók és potenciális bevételkiesés

Egy 2023-as IDC-tanulmány szerint az adatbázis-teljesítményproblémák 65%-a a nem megfelelő monitorozási vagy optimalizálási gyakorlatokból ered.

2. A Windows Teljesítményfigyelő (PerfMon) megismerése

2.1 Mi az a Windows Teljesítményfigyelő?

A Windows Teljesítményfigyelő (PerfMon) egy beépített Windows eszköz, amely figyeli a rendszer erőforrásait és az alkalmazások teljesítményét. SQL Server adminisztrátorok számára a PerfMon felbecsülhetetlen értékű betekintést nyújt mind az operációs rendszerbe, mind a SQL Server mérőszámokat, ami elengedhetetlenné teszi az átfogó teljesítményelemzéshez.

Windows Teljesítményfigyelő (PerfMon)

A PerfMon rendszeres időközönként méri a teljesítménystatisztikákat, és ezeket a statisztikákat fájlokba menti későbbi elemzés céljából. Az adatbázis-adminisztrátorok kiválaszthatják az időintervallumot, a fájlformátumot és a figyelni kívánt statisztikákat. Az eszköz nem... SQL Server-specifikus – a rendszergazdák a Windows, az Exchange, a fájlszerverek és minden olyan alkalmazás figyelésére használják, amely szűk keresztmetszeteket tapasztalhat.

2.2 A Teljesítményfigyelő indítása

A Teljesítményfigyelőt többféleképpen is elindíthatja:

  1. Kattints Start, típus PerfMon A keresőmezőben kattintson a „Performand Monitor” elemre a keresési eredmények között:
    Keresés éstart PerfMon a Windows keresőmezőjéből.
  2. Sajtó A Windows + R, típus PerfMon, és nyomja meg a gombot belép
    Start PerfMon a Windows futtatómezőjéből.
  3. navigáljon Control Panel -> Rendszer és biztonság -> adminisztratív eszközök -> teljesítmény monitor
    StarPerfMon a Vezérlőpultból -> Rendszer és biztonság -> Felügyeleti eszközök -> Teljesítményfigyelő

3. lényeges SQL Server Teljesítményszámlálók

3.1 Memóriateljesítmény-számlálók

A memóriaszámlálók kritikus fontosságúak a monitorozáshoz SQL Server teljesítmény, mivel jelzik, hogy az adatbázis rendelkezik-e elegendő memória-erőforrással.

Elérhető MB

Ez a számláló a lefoglaláshoz azonnal elérhető fizikai memória mennyiségét mutatja. Meglehetősen állandónak kell maradnia, és ideális esetben nem csökkenhet 4096 MB alá. Az alacsony értékek azt jelezhetik, hogy SQL Servermaximális memóriabeállítása alapértelmezett értéken marad, vagy nemSQL Server az alkalmazások memóriát fogyasztanak.

Oldal várható élettartama

Az oldal várható élettartama azt méri, hogy egy oldal mennyi ideig (másodpercben) marad a pufferkészletben anélkül, hogy rá hivatkoznának. A normál érték 300 másodperc vagy több. Az alacsonyabb értékek memóriaterhelést és túlzott pufferforgalmat jeleznek, ami csökkenti a gyorsítótár hatékonyságát.

Puffer gyorsítótár találati aránya

Ez a számláló azt jelzi, hogy az adatkérések hány százalékát válaszolták meg az SQL puffer gyorsítótárának (memóriájának) használatával a lemezről való olvasás helyett. Általában eléri vagy meghaladja a 99%-ot. Az alacsonyabb értékek azt jelzik, hogy SQL Server több memóriára van szüksége, vagy még mindig melegszik egy újraindítás utántart.

Memória támogatások függőben

Ez mutatja a memóriára váró folyamatok számát. SQL ServerNormál körülmények között ennek az értéknek következetesen 0-nak kell lennie. A magasabb értékek nem elegendő memória-allokációt jeleznek a SQL Server.

TarSzervermemória vs. teljes szervermemória

TarA get Server Memory (kiszolgálómemória) az ideális memóriamennyiséget jelzi. SQL Server A Teljes Szervermemória megmutatja, hogy mennyit szeretne használni. SQL Server jelenleg használ. Ezen értékek arányának körülbelül 1-nek kell lennie. A jelentős eltérések memóriahiányra vagy a rendelkezésre álló memória hiányára utalhatnak.

3.2 Processzorteljesítmény-számlálók

A CPU-számlálók segítenek azonosítani a processzor szűk keresztmetszeteit és megérteni, hogyan SQL Server számítástechnikai erőforrásokat használ.

% Processzoridő

Ez azt méri, hogy a processzor a nem tétlen szálak végrehajtásával töltött eltelt időből hány százalékot tölt. Aktív szervereken az értékek akár 100%-ra is felemelkedhetnek, de a 70-75% feletti tartós kihasználtság jellemzően teljesítményproblémákat jelez a felhasználók számára. A hiányzó vagy nem megfelelő indexek gyakran magas CPU-használatot okoznak.

% Kiemelt idő

A processzoridő felhasználói módra és privilegizált (kernel) módú feldolgozásra oszlik. Minden lemezhozzáférés és I/O kernel módban történik. Ha ez a számláló meghaladja a 25%-ot, a rendszer valószínűleg túl sok I/O-t hajt végre. A normál értékek 5% és 10% között vannak.

Processzor sorhossza

Ez a számláló a CPU-erőforrásokra várakozó szálakat mutatja. Az értékek következetesen 1 felett vannak (kivéve a következő időszakban: SQL Server biztonsági mentési tömörítés) a CPU terhelését jelzik. Ez gyakran azt jelenti, hogy más alkalmazások is telepítve vannak a SQL Server gép, ami sérti a legjobb gyakorlatokat.

Kontextusváltások/másodperc

Ez azt méri, hogy a processzor milyen gyakran vált szálak között. A túlzott kontextusváltás befolyásolhatja a teljesítményt, és magas rendszerterhelésre utal.

3.3 Lemez I/O teljesítményszámlálók

A lemezszámlálók elengedhetetlenek az SQL teljesítményének monitorozásához, mivel a lemez I/O gyakran az adatbázis-rendszerek elsődleges szűk keresztmetszetévé válik.

% Lemezidő

Ez rögzíti a lemez olvasási/írási műveletekkel töltött idejének százalékos arányát. A 85% feletti értékek folyamatosan I/O szűk keresztmetszetet jeleznek. Mivel a lemez sokkal lassabb, mint a memória, ennek a mutatónak a csökkentése javítja a teljesítményt.

Átl. lemezidő/olvasás és átlagos lemezidő/írás

Ezek a számlálók az olvasási és írási műveletek átlagos idejét (másodpercben) mérik. Ha az átlagértékek meghaladják a 10-20 ms-ot, a lemez túl sokáig tart az adatok feldolgozása. A tranzakciónapló-meghajtók különösen gyors írási teljesítményt igényelnek.

Lemez sor hossza

Ez a lemezre olvasás/írás iránti függőben lévő kéréseket mutatja. A 2-nél (vagy RAID tömbök esetén lemezenként 2-nél) folyamatosan magasabb értékek azt jelzik, hogy a lemez nem tudja tartani a lépést az I/O kérésekkel.

Lemez bájt/sec

Ez figyeli a lemezre/lemezről történő adatátvitel sebességét. Ha ez meghaladja a lemez névleges kapacitását, az adatok elkezdenek várakozni, amit a lemez várólistájának hosszának növekedése is jelez.

Lemezátvitel/mp

Ez nyomon követi a lemezen végrehajtott olvasási/írási műveletek számát. SQL Server Az adathozzáférés jellemzően véletlenszerű, ami a meghajtófej mozgása miatt lassabb. Győződjön meg róla, hogy ez az érték a merevlemez maximális teljesítménye alatt marad (általában 100/másodperc a standard meghajtók esetében).

3.4 SQL Server Specifikus számlálók

3.4.1 Pufferkezelő számlálók

A Buffer Manager számlálóinak figyelése SQL Servermemóriapuffer műveletei:

  • Oldalolvasás/másodperc: A fizikai adatbázis oldalainak összesített száma
  • Oldal írás/másodperc: Fizikai adatbázisoldali írások összesített száma
  • Lusta írás/másodperc: A lusta író által a memória felszabadításához írt pufferek száma
  • Ellenőrzőpont oldalak/másodperc: Ellenőrzőpont vagy más, az összes piszkos oldal kiürítését igénylő műveletek által kiürített oldalak

3.4.2 SQL statisztikai számlálók

Ezek a számlálók betekintést nyújtanak SQL Server lekérdezésfeldolgozás:

  • Kötegelt kérések/másodperc: A szerver által fogadott SQL kötegelt kérések száma. Ez a szerveraktivitás referenciaértékeként szolgál.
  • SQL fordítások/másodperc: SQL-fordítások száma. A teljes Batch-kérések/másodperc számának 10%-a vagy kevesebb lehet.
  • SQL újrafordítások/másodperc: SQL újrafordítások száma. A teljes Batch kérések/másodperc számának 10%-ánál vagy kevesebbnél nem lehet.

3.4.3 Általános statisztikai számlálók

  • Felhasználói kapcsolatok: A rendszerhez csatlakoztatott felhasználók száma. Összehasonlításképpen használják a kapcsolatok számának időbeli növekedésének nyomon követésére.
  • Blokkolt folyamatok: A blokkolt folyamatok aktuális száma. Ideális esetben 0-nak kell lennie.

3.4.4 Memóriakezelő számlálói

  • Függőben lévő memória-támogatások: A munkaterület memória-kiosztására váró folyamatok teljes száma. Ideális esetben 0-nak kell lennie.

4. Teljesítményfigyelő beállítása a következőhöz: SQL Server(Windows Vista / Server 2008 és újabb)

Először is létre kell hoznunk egy konténert a számlálók egyszerűbb kezeléséhez:

  • Windows Vista / Server 2008 és újabb verziók esetén ebben a szakaszban hozhat létre adatgyűjtő-készleteket.
  • Windows XP / Server 2003 és korábbi verziók esetén számlálónaplókat hozhat létre a következő helyen: a következő szakasz.

4.1 Mik azok az adatgyűjtő-készletek?

Az adatgyűjtő-készletek egyetlen gyűjtőegységbe rendszerezik a teljesítményszámlálókat, az eseménykövetési adatokat és a rendszerkonfigurációs információkat. Nagyobb rugalmasságot biztosítanak, mint az egyszerű számlálónaplók, és lehetővé teszik az automatizált, ütemezett adatgyűjtést az SQL-adatbázis teljesítményének átfogó monitorozásához.

4.2 Adatgyűjtő-készlet létrehozása

Hozzon létre egy egyéni adatgyűjtő-készletet a monitorozáshoz SQL Server teljesítményszámlálók:

  1. Teljesítményfigyelő megnyitása
  2. Bontsa Adatgyűjtő készletek
  3. Kattintson a jobb gombbal Felhasználó által meghatározott
  4. választ Újszerű -> Adatgyűjtő készlet
    Hozzon létre egy új adatgyűjtő-készletet a PerfMonban
  5. Adjon meg egy leíró nevet (pl. „SQL Server Teljesítménymutatók”)
  6. választ Kézi létrehozás (Speciális)
    Adjon meg egy leírásnevet az adatgyűjtő-készlethez
  7. Kattints Következő
  8. Jelölje be Adatnaplók létrehozása -> Teljesítményszámláló
    Válassza az Adatnaplók létrehozása -> Teljesítményszámláló lehetőséget az Új adatgyűjtő-készlet létrehozása varázslóban.
  9. Kattints Következő
  10. Kattints hozzáad számlálók kiválasztásához
  11. hozzáad kívánatos SQL Server és rendszerszámlálók.
    Teljesítményszámlálók hozzáadása az új adatgyűjtő-készlethez.
  12. Készlet Minta intervallum
    • Rutinszerű monitorozáshoz használjon 1 percet (60 másodpercet)
    • Aktív hibaelhárításhoz használjon 15-30 másodpercet
    • Kerülje a nagy gyakoriságú rögzítések hosszú távú futtatását, mivel ezek befolyásolhatják a teljesítményt és túlzott adatmennyiséget generálhatnak.

    Állítsa be a mintavételi intervallumot az új Adatgyűjtő-készlet varázslóban.

  13. Kattints Következő
  14. Válassza ki a naplók mentési helyét
    Állítsa be a teljesítményadatok mentési helyét az új adatgyűjtő-készlet varázslóban.
  15. Kattints befejez, egy új adatgyűjtő-készlet jön létre.
  16. Alapértelmezés szerint az új adatgyűjtő-készlet a következő lesz: NEM legyen starautomatikusan. A bal oldali panelen, a Teljesítmény -> Adatgyűjtő készletek -> Felhasználó által meghatározott -> Az adatgyűjtőd, kattints rá jobb gombbal, és válaszd a Start
    Staregy új adatgyűjtő-készletet a PerfMon-ban.

4.3 Hozzáadandó fő számlálók

  • Memória -> Elérhető MByte
  • Fizikai lemez -> Átl. lemezsebesség másodpercenként (olvasásonként) (minden példány, kivéve a _Total)
  • Fizikai lemez -> Átl. lemezsebesség másodpercenként/írás (minden példány, kivéve a _Total)
  • Fizikai lemez -> Lemezolvasások/másodperc (minden példány, kivéve a _Total értéket)
  • Fizikai lemez -> Lemezírások/másodperc (minden példány, kivéve a _Total értéket)
  • Processzor -> % Processzoridő (minden példány, kivéve a _Total)
  • SQLServer: Általános statisztikák -> Felhasználói kapcsolatok
  • SQLServer: Memóriakezelő -> Memóriaengedélyek függőben
  • SQLServer: SQL Statisztika -> Köteles kérések/másodperc
  • SQLServer: SQL Statisztika -> SQL Fordítások/másodperc
  • SQLServer: SQL Statisztika -> SQL Újrafordítások/másodperc
  • Rendszer -> Processzor sorhossza

4.4 Leállítási feltételek beállítása

Konfiguráljon leállítási feltételeket a korlátlan adatnövekedés megakadályozására:

  1. Az adatgyűjtő-készlet létrehozása után kattintson rá jobb gombbal, és válassza a lehetőséget Ingatlanok
  2. Kattintson az Stop állapot lap
  3. engedélyezése Teljes időtartam
  4. Időtartam beállítása 1 napra (24 órára)
  5. Kattints OK menteni

Az adatgyűjtő-készlet leállítási feltételének beállítása

Ez biztosítja, hogy a napló ne nőjön túl nagyra, és automatikusan újrainduljon.tarts, ha ütemezve van.

4.5 Adatgyűjtés ütemezése

Automatizálja az adatgyűjtést a következetes monitorozás biztosítása érdekében:

  1. Kattintson a jobb gombbal az Adatgyűjtő-készletre, és válassza a lehetőséget Ingatlanok
  2. Kattintson az Ütemterv lap
  3. Kattints hozzáad új ütemterv létrehozásához
  4. Konfigurálja az stardátum és idő
  5. Ismétlődési minta beállítása (pl. napi)
  6. Kattints OK az ütemterv mentéséhez

Az adatgyűjtő-készlet ütemtervének beállítása

Automatikus s-heztartup, konfigurálja az adatgyűjtő-készletet s-retaramikor a szerver elindul, létrehozva más néventartup trigger a Windows Feladatütemezőben.

5. Teljesítményfigyelő beállítása a következőhöz: SQL Server(Windows XP / Server 2003 és korábbi)

Windows XP / Server 2003 és korábbi verziók esetén számlálónaplókat hozhat létre, amelyek lehetővé teszik teljesítményszámlálók egy halmazának kiválasztását és rendszeres időközönkénti naplózását egy fájlba.

5.1 Számlálónaplók létrehozása

Új számlálónapló létrehozásához kövesse az alábbi lépéseket:

  1. Teljesítményfigyelő megnyitása
  2. Bontsa Teljesítmény és riasztások a bal oldali ablaktáblában
  3. Kattintson a jobb gombbal Számlálónaplók
  4. választ Új naplóbeállítások
  5. Nevezze el a naplót az adatbázis-kiszolgáló nevével (pl. „ProductionSQL01”).
  6. Kattints OK a konfiguráció megkezdéséhez

Ha minden szerverhez külön számlálónaplókat hoz létre, akkor az egyes szerverek teljesítményét tesztelheti anélkül, hogy egyszerre kellene adatokat gyűjtenie az összes szerverről.

5.2 Teljesítményszámlálók hozzáadása

A számlálónapló létrehozása után adja hozzá a figyelni kívánt teljesítményszámlálókat:

  1. Kattintson az Számlálók hozzáadása gomb
  2. Módosítsa a számítógép nevét úgy, hogy a saját számítógépére mutasson. SQL Server példa
  3. Sajtó Tab az elérhető teljesítményobjektumok betöltéséhez
  4. Válasszon egy teljesítményelemet a legördülő menüből (pl. Memory design)
  5. Válasszon ki konkrét számlálókat a következők közül: a lista
  6. Válassza ki az eseteket, ha alkalmazhatócabfájlok (pl. egyedi processzorok vagy lemezek)
  7. Kattints hozzáad hogy tartalmazza a számlálót
  8. Ismételje meg az összes kívánt számlálóval
  9. Kattints közel mikor kész

5.3 Mintavételi intervallumok konfigurálása

A mintavételi intervallum határozza meg, hogy a Performance Monitor milyen gyakran gyűjti az adatokat. Konfigurálja a megfelelő intervallumokat a monitorozási igényei alapján:

  1. A számlálónapló tulajdonságai között keresse meg a Mintaadatok minden
  2. Állítsa be az intervallumot (alapértelmezett 15 másodperc)
  3. Az alapállapot monitorozásához használjon 1 perces időközönkénti napi gyűjtést
  4. Hibaelhárításhoz használjon 15-30 másodperces időközöket rövid sorozatokhoz
  5. Kattints OK alkalmazni

Ne feledd, hogy a kisebb intervallumok több adatot generálnak, amelyeket nehezebb lehet megjeleníteni és elemezni. A nagyobb intervallumok fontos csúcsokat hagyhatnak ki. Keresd az egyensúlyt az adatgranulencia és a tárolási, valamint elemzési követelmények között.

5.4 Naplófájlok konfigurálása

A naplófájl megfelelő konfigurációja biztosítja az adatok hatékony és hozzáférhető tárolását:

  1. Kattintson az Log Files lap a számlálónapló tulajdonságaiban
  2. Naplófájl típusának módosítása erre: Szövegfájl (vesszővel elválasztva) az egyszerű Excel importáláshoz
  3. Kattints konfigurálása
  4. Állítsa be a fájl elérési útját egy dedikált helyre (pl. egy megosztott PerformanceLogs mappába)
  5. Kattints OK megerősítéséhez

Használjon hálózaton keresztül elérhető megosztást a naplók tárolásához, hogy távolról is hozzáférhessen a fájlokhoz, és megoszthassa azokat más felhasználókkal.

5.5 Hitelesítő adatok beállítása

Konfigurálja a megfelelő hitelesítő adatokat, hogy a Teljesítményfigyelő hozzáférhessen a távoli SQL Server esetek:

  1. A számlálónapló tulajdonságai között keresse meg a Futtatás másként
  2. Add meg a domain felhasználónevedet a következő formátumban: DOMAIN\felhasználónév
  3. Kattints Jelszó megadása
  4. Írja be és erősítse meg jelszavát
  5. Kattints OK menteni

Ez lehetővé teszi a PerfMon szolgáltatás számára, hogy a saját hitelesítő adatai helyett a domainengedélyek alapján gyűjtsön statisztikákat.

6. Teljesítményfigyelő adatok elemzése

6.1 Naplófájlok megtekintése a Teljesítményfigyelőben

A Teljesítményfigyelő képes megjeleníteni a mentett naplófájlokból származó előzményadatokat:

  1. Teljesítményfigyelő megnyitása
  2. Kattintson a bal oldali ablaktáblán Monitoring eszközök -> teljesítmény monitor.
  3. Kattintson jobb gombbal a grafikonterület bármely pontjára
  4. választ Ingatlanok
    A PerfMon tulajdonságait a grafikon bármely pontjára jobb gombbal kattintva nyithatjuk meg.
  5. Kattintson az Forrás lap
  6. választ Naplófájlok Rádiógomb
  7. Kattints hozzáad
  8. Navigálj a naplófájlodhoz (.blg vagy .csv)
  9. Válassza ki a fájlt, majd kattintson a gombra Nyisd ki
    Naplófájl beállítása a PerfMon grafika forrásaként.
  10. Használja a Időtartományban csúszkával válassza ki az elemezni kívánt időszakot
  11. Kattints OK a Tulajdonságok párbeszédpanel bezárásához
  12. Kattintson a zöld plusz ikonra a naplófájlból származó számlálók hozzáadásához
    Kattintson a zöld plusz ikonra a PerfMon naplófájljából származó számlálók hozzáadásához.
  13. Válassza ki a megjeleníteni kívánt számlálókat
    Adja hozzá a kívánt számlálókat a PerfMon grafikájához.
  14. Kattints OK

A grafikon mostantól a naplófájl korábbi adatait jeleníti meg. A Tulajdonságok részben található Időtartomány csúszkával szűkítheti le az adott időszakokat a részletes elemzéshez.

6.2 Adatok exportálása Excelbe

Az Excel hatékony elemzési lehetőségeket kínál a teljesítményszámláló-adatokhoz:

  1. Nyissa meg a Teljesítményfigyelőt a betöltött naplófájllal
  2. Kattintson jobb gombbal a grafikonterület bármely pontjára
  3. választ Adatok mentése másként
  4. Válasszon egy helyet a fájlnak
  5. választ Szövegfájl (vesszővel elválasztott) (.csv) a legördülő menüből
  6. Kattints Megtakarítás
  7. Nyissa meg a CSV fájlt Excelben

Exportálja az adatokat egy fájlba a PerfMonban.

Formázd az exportált adatokat a jobb elemzés érdekében:

  1. Töröld a félig üres 2. sort és ürítsd ki az A1 cellát
  2. Az A oszlop formázása dátum/idő szerint
  3. Numerikus oszlopok formázása nulla tizedesjeggyel és ezres elválasztóval
  4. Kiszolgálónevek keresése és cseréje a fejlécekben (pl. a „\\SZERVERNÉV” helyére írható üres karakterlánc)
  5. Objektumnevek törlése a fejlécekben (pl. „Memória”, „Fizikai lemez”, „Processzor”)
  6. A jobb láthatóság érdekében csökkentsd a fejléc betűméretét 8 pontra

6.3 Számlálóértékek értelmezése

6.3.1 Memóriaszámláló elemzése

A memóriaszámlálók elemzésekor a következő jelzőket kell keresni:

  • Elérhető MByte: Folyamatosan 4096 MB felett kell maradnia
  • Oldal várható élettartama: A 300 másodperc feletti értékek egészséges memóriát jeleznek. Az alacsonyabb értékek memórianyomásra utalnak.
  • Puffer gyorsítótár találati aránya: El kell érnie vagy meg kell haladnia a 99%-ot. Az alacsonyabb értékek túlzott lemezolvasást jeleznek.
  • Függőben lévő memória-támogatások: Mindig 0-nak kell lennie. Bármely pozitív érték memória s-t jelez.tarváció

6.3.2 CPU-számláló elemzése

A CPU teljesítménymutatói a következők:

  • Processzoridő (%): A tartós 75% feletti használat teljesítményproblémákat jelez. A 100%-ra való kiugrás normális, de nem szabadna tartósnak lennie.
  • Processzor sorhossza: Az 1 feletti értékek a CPU terhelését jelzik. A Feladatkezelőben ellenőrizheti, hogy mely folyamatok használják a CPU-t.
  • % Kiemelt idő: 5-10% között kell maradnia. A 25% feletti értékek túlzott I/O műveletekre utalnak.

6.3.3 Lemezszámláló elemzése

Lemezteljesítmény-küszöbértékek:

  • Átl. lemezterület másodpercenként/olvasás és írás: 10-20 ms alatt kell maradnia. A magasabb értékek lassú lemez alrendszereket jeleznek.
  • Lemez sor hossza: A 2 feletti értékek (vagy RAID-ben lemezenként 2 felett) I/O szűk keresztmetszeteket jeleznek.
  • % Lemezidő: A 85% feletti tartós értékek a lemez telítettségét jelzik.

6.4 Képletek és statisztikák használata

Statisztikai képletek hozzáadása az Excelhez a gyors elemzéshez:

  1. Szúrj be 7 üres sort a táblázat tetejére
  2. Címkék hozzáadása az A oszlopban: Átlag, Medián, Min, Max, Szórás
  3. A B2 cellába írja be a következőt: =ÁTLAG(B9:B100) (a B100 cellát igazítsa az utolsó adatsorhoz)
  4. A B3 cellába írja be: =MEDIÁN(B9:B100)
  5. A B4 cellába írja be: =MIN(B9:B100)
  6. A B5 cellába írja be: =MAX(B9:B100)
  7. A B6 cellába írja be: =SZÓRÁS(B9:B100)
  8. Képletek másolása az összes számlálóoszlopba
  9. Jelölje ki a B9 cellát, és nyomja meg az Alt+W+F+Enter billentyűkombinációt a panelek rögzítéséhez

Ezek a statisztikák segítenek azonosítani az egyes számlálók trendjeit, kiugró értékeit és normál működési tartományait.

7. Teljesítményelemző naplók (PAL) eszközéhez

7.1 Bevezetés a PAL-ba

A Performance Analysis for Logs (PAL) egy Clint Huffman által fejlesztett ingyenes eszköz, amely elemzi a Teljesítményfigyelő naplóit, és HTML-jelentéseket generál küszöbérték-elemzéssel. A PAL összehasonlítja a teljesítményadatokat az ismert küszöbértékekkel, és részletes ajánlásokat nyújt a következőkre vonatkozóan: SQL Server teljesítmény optimalizálás.

Töltsd le a PAL-t a GitHub repositoryból: https://github.com/clinthuffman/PAL Külső link

7.2 PAL beállítása

Telepítse a PAL-t a következő lépésekkel:

  1. Töltsd le a PAL telepítőfájlt a GitHubról
  2. Futtassa a telepítőt
  3. Kattints Következő az üdvözlőképernyőn
  4. Tekintse át és fogadja el a telepítési könyvtárat
  5. Kattints Következő hogy továbbra is
  6. Kattints Telepítés a telepítés megkezdéséhez
  7. Várja meg a telepítés befejezését
  8. Kattints befejez

7.3 Naplófájlok feldolgozása PAL-lal

Teljesítményfigyelő naplók elemzése PAL használatával:

  1. Indítsa el a PAL-t az S-bőltart menü vagy telepítési könyvtár
  2. Kattintson az Számlálónapló lap
  3. Kattints Tallózás a .blg fájl kiválasztásához
  4. Navigáljon a Teljesítményfigyelő naplófájljához
  5. Kattints Nyisd ki
  6. Kattintson az Küszöbfájl lap
  7. Válasszon ki egy küszöbértékfájlt a legördülő menüből (pl. „SQL Server 2016” )
  8. Kattintson az Kérdések_TesztXNUMX lap
  9. Válaszoljon a rendszerkonfigurációval kapcsolatos kérdésekre
  10. Adja meg, hogy az Ön SQL Server OLTP vagy adattárház
  11. Adja meg a rendelkezésre álló RAM teljes értékét
  12. Kattintson az Kimeneti opciók lap
  13. Válasszon ki egy kimeneti könyvtárat a HTML-jelentéshez
  14. Jelölje be HTML kimeneti formátum
  15. Kattintson az Végrehajt lap
  16. Tekintse át a kiválasztott elemeket
  17. Jelölje be Starvégrehajtás most
  18. Kattints befejez

7.4 PAL-jelentések elemzése

Miután a PAL befejezte az elemzést, egy HTML-jelentést generál, amely a következőket tartalmazza:

  • A teljesítményproblémák összefoglalása
  • Részletes számlálóelemzés diagramokkal
  • Színnel kiemelt küszöbérték-sértések
  • Konkrét ajánlások minden egyes problémára
  • Történelmi trendek és minták

A jelentés színkódolást használ a súlyosság jelzésére: piros a kritikus problémákat, sárga a figyelmeztetéseket, zöld pedig az egészséges mutatókat jelöli. Tekintse át az egyes részeket a teljesítménybeli szűk keresztmetszetek megértéséhez, és kövesse a PAL optimalizálási ajánlásait.

8. Alternatív SQL Server Monitoring eszközök

Beépített 8.1 SQL Server Eszközök

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor valós idejű információkat jelenít meg a SQL Server folyamatok és teljesítmény:

  1. Nyisd ki SQL Server Management Studio (SSMS) és csatlakozzon a szerverpéldányhoz
  2. Kattintson a jobb gombbal a kiszolgáló nevére az Object Explorerben
  3. választ Activity Monitor
    StarAktivitásfigyelő SQL Server Menedzsment Stúdió.

Az Aktivitásfigyelő megjeleníti a folyamatokat, az erőforrás-várakozásokat, az adatfájlok I/O-műveleteit és a legutóbbi költséges lekérdezéseket. Gyorsan betekintést nyújt az adatbázis aktuális tevékenységébe, de nem tárol előzményadatokat.

Aktivitásfigyelő SQL Server

8.1.2 SQL Server Teljesítmény-műszerfal

SQL Server A Management Studio beépített teljesítményjelentéseket tartalmaz:

  1. In SQL Server Management Studio (SSMS) elemre, kattintson a jobb gombbal a SQL Server példány az Object Explorerben
  2. választ Jelentések -> Normál jelentések
  3. Válasszon a rendelkezésre álló jelentések közül, például Teljesítmény-műszerfal
    Teljesítmény-irányítópult megnyitása itt: SQL Server Menedzsment Stúdió.

A Teljesítmény Irányítópult vizuális betekintést nyújt a SQL Server példány teljesítményét, beleértve a rendszer CPU-kihasználtságát, az aktuálisan várakozó kéréseket és a teljesítménymutatókat. Hozzáférhet a Standard jelentések menün keresztül.

Teljesítmény-irányítópult SQL Server Menedzsment Stúdió

8.1.3 SQL Server Profiler

SQL Server Profiler rögzíti és elemzi SQL Server események, például lekérdezések végrehajtása, tranzakciós műveletek és bejelentkezési tevékenységek.

A start SQL Server Profilkészítő:

  1. In SQL Server Management Studio, kattints Eszközök -> SQL Server Profiler
    Start SQL Server Profiler be SQL Server Menedzsment Stúdió.

A Profiler jelentős teljesítménynövelő hatást fejt ki, ezért körültekintően és lehetőleg csúcsidőn kívül használja.ost forgatókönyvek esetén a kiterjesztett események jobb teljesítményt nyújtanak kisebb hatással.

SQL Server Profiler

8.1.4 Kiterjesztett események

Bővített események egy könnyű, beépített teljesítményfigyelő rendszer SQL Server. Helyettesíti SQL Server Profiler jobb teljesítménnyel és alacsonyabb terheléssel.

Főbb jellemzői a következők:

  • Konkrét események részletes monitorozása
  • Minimális hatás a teljesítményre
  • Testreszabható eseményülések
  • Integráció az SSMS-sel és más eszközökkel
  • Komplex szűrés és aggregáció támogatása

Kiterjesztett esemény-munkamenetek létrehozása SSMS-en keresztül:

  1. In Objektumkezelő, bontsa ki a szervert, és menjen ide: Kezelés -> Kiterjesztett események -> Munkamenetek
  2. Kattintson a jobb gombbal a Sessions És válasszon Új munkamenet varázsló
    Stara kibővített események új ülésszaka SQL Server Menedzsment Stúdió.
  3. Kövesse az utasításokat ataregy új ülés.

8.1.5 Dinamikus kezelési nézetek (DMV-k)

A DMV-k részletes szerverállapot-információkat tesznek elérhetővé az állapot figyelése, a problémák diagnosztizálása és a teljesítmény finomhangolása érdekében. A legfontosabb DMV-k a következők:

  • sys.dm_exec_query_stats: Lekérdezési teljesítménystatisztikák
  • sys.dm_os_wait_stats: A várakozási típusok befolyásolják a szerver teljesítményét
  • sys.dm_os_performance_counters: SQL Server teljesítményszámláló adatok
  • sys.dm_exec_requests: Jelenleg végrehajtott kérések
  • sys.dm_exec_sessions: Aktív felhasználói munkamenetek

Lekérdezheti ezeket a nézeteket T-SQL használatával a valós idejű teljesítményadatok és a korábbi mérőszámok eléréséhez.

Alapvető használat

-- 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 Harmadik féltől származó monitorozási megoldások

Redgate SQL Monitor

A Redgate SQL Monitor a monitorozásra specializálódott. SQL Server és Azure SQL Database környezetekben. Teljes körű monitorozást, testreszabható riasztásokat és irányítópultokat, részletes jelentéskészítési lehetőségeket, valamint más Redgate eszközökkel való integrációt biztosít.

Redgate SQL Server monitor

SolarWinds SQL Server Monitoring eszköz

A SolarWinds SQL Server A Monitoring Tool, más néven SQL Sentry, a súlyos teljesítményproblémák diagnosztizálására, megoldására és megelőzésére szolgál SQL Server.

SolarWinds SQL Server Monitoring eszköz

IDERA-é SQL Server Teljesítményfigyelő eszköz

IDERA SQL Diagnostic Manager egy erős SQL Server teljesítményfigyelő eszköz, amely a proaktív teljesítményfigyelést segíti, diagnosztizálniostics és tuning.

IDERA-é SQL Server Teljesítményfigyelő eszköz

Az Alkalmazáskezelő SQL figyelése

Az Applications Manager kínál egy Microsoft SQL Server Felügyeleti eszköz, amely hasznos informatikai megoldásokat kínál. Úgy tervezték, hogy felügyelje az SQL-adatbázisok teljesítményét, miközben egyidejűleg azonosítja a hibákat és megoldja azokat a problémákat, amelyek a szervezet működésének leállásához vezethetnek.

Az Alkalmazáskezelő SQL figyelése

8.3 Nyílt forráskódú monitorozó eszközök

DBA Dash

A DBA Dash egy ingyenes, nyílt forráskódú monitorozó eszköz, amely betekintést nyújt a következőkbe: SQL Server állapot, teljesítmény és aktivitás. Különösen hasznos kis és közepes méretű környezetekben, és napi adatbázis-ellenőrzéseket, teljesítményfigyelést és konfigurációkövetést tartalmaz.

SQLWATCH

Az SQLWATCH decentralizált, közel valós idejű megoldást kínál SQL Server 5 másodperces részletességgel monitoroz a munkaterhelés-csúcsok rögzítésére. Támogatja a Grafanát a valós idejű irányítópultokhoz és a Power BI-t a mélyreható elemzéshez. Az eszköz széleskörű konfigurációs lehetőségeket, nulla karbantartási igényt és korlátlan skálázhatóságot kínál.

Operátor

A Stack Exchange által fejlesztett Opserver több rendszert is figyel, beleértve SQL Server, Redis és Elasticsearch. „Összes szerver” nézetet biztosít a CPU-, memória-, hálózati és hardverstatisztikákhoz az infrastruktúrában.

sp_KiAktív

Az sp_WhoIsActive egy átfogó tevékenységfigyelő tárolt eljárás, amelyet Adam Machanic készített. Mindennel működik. SQL Server 2005-ös verzióktól a jelenlegi kiadásokig, és széles körben használják SQL Server Adatbázis-adminisztrátorok (DBA-k) valós idejű tevékenységfigyeléshez.

Az sp_WhoIsActive használatához töltse le a http://whoisactive.com/ oldalról, telepítse az adatbázisába, és futtassa a következő parancsot:

EXEC sp_WhoIsActive

Az eljárás megjeleníti a jelenleg futó lekérdezéseket, a várakozási információkat, a blokkolási részleteket és az erőforrás-felhasználást.

9. A legjobb gyakorlatok a SQL Server teljesítmény monitor

9.1 Teljesítmény-alapértékek meghatározása

A teljesítmény-alapértékek meghatározzák a normál működési paramétereket az Ön számára. SQL Server környezet. Alapértékek nélkül nem lehet meghatározni, hogy a jelenlegi mutatók problémákat jeleznek-e, vagy tipikus viselkedést képviselnek.

Alapvonalak létrehozása a következők szerint:

  1. Teljesítményadatok gyűjtése normál működés közben legalább egy héten keresztül
  2. Mérési adatok rögzítése csúcsidőben és csúcsidőn kívül is
  3. A kulcsszámlálók tipikus értékeinek dokumentálása
  4. Szezonális változások rögzítése, ha alkalmazhatócable
  5. Alapadatok tárolása a jövőbeli mérőszámokkal való összehasonlításhoz

Frissítse az alapkonfigurációkat negyedévente, vagy jelentős infrastrukturális változások, alkalmazásfrissítések vagy adatbázis-módosítások után.

9.2 Megfelelő riasztási küszöbértékek beállítása

Intelligens küszöbértékek konfigurálása, hogy értelmes riasztásokat kapjon anélkül, hogy elárasztaná magát értesítésekkel:

  • A függőben lévő memória-támogatások > 0 értéke memória-nyomást jelez
  • A processzor várólistájának hossza > 2 magonként CPU-szűk keresztmetszetre utal
  • A lemezsebesség/olvasási vagy írási sebesség > 20 ms lassú I/O-t jelez
  • Blokkolt folyamatok > 5 jelzi a versenyhelyzeti problémákat
  • A 300 másodpercnél rövidebb oldalélettartam memória-terhelést jelez.

Módosítsa a küszöbértékeket az alapadatok és az adott munkaterhelés-jellemzők alapján. Használjon adaptív küszöbértékeket, amelyek figyelembe veszik a környezet normál változásait.

9.3 Rendszeres adatfelülvizsgálat és -elemzés

Rendszeres teljesítményértékelések ütemezése a trendek és a felmerülő problémák azonosítása érdekében:

  • Naponta: Áttekintheti a főbb mutatókat és a legutóbbi riasztásokat
  • Heti: Végezzen mélyreható elemzést a teljesítménytrendekről
  • Havonta: Átfogó jelentések készítése és összehasonlítása az alapértékekkel
  • Negyedévente: A kapacitástervezés és a hosszú távú trendek áttekintése

Dokumentálja az eredményeket, és kövesse nyomon a teljesítményjavulást az idő múlásával.

9.4 Kiegyensúlyozási monitoring többletköltségek

Maga a monitorozás erőforrásokat fogyaszt, ezért egyensúlyt kell teremteni az adatgyűjtés és a teljesítményre gyakorolt ​​hatás között:

  • Használjon 30-60 másodperces időközöket a folyamatos monitorozáshoz
  • Csak aktív hibaelhárításhoz használjon 15 másodperces időközöket
  • Adatgyűjtő korlátozása Időtartam beállítása a túlzott adatmennyiség elkerülése érdekében
  • A naplók tárolása az adatbázisfájloktól elkülönített meghajtókon
  • A régi teljesítményadatok archiválása a kezelhető fájlméretek fenntartása érdekében

A Teljesítményfigyelő megfelelő konfigurálás esetén minimális terhelést jelent, jellemzően a rendszererőforrások 2%-a alatt.

9.5 Hosszú távú adatmegőrzés

Őrizze meg a teljesítményadatokat az érdemi trendelemzés és a kapacitástervezés érdekében:

  • Őrizzen meg legalább 1-2 évnyi teljesítményadatot
  • Az adatok archiválása külön tárolóba 3-6 hónap elteltével
  • Régebbi naplófájlok tömörítése helytakarékosság érdekében
  • Dokumentáljon minden jelentős eseményt vagy változást, amely befolyásolja a teljesítményt

A teljesítményszámláló adatainak viszonylag kis mérete miatt a határozatlan idejű megőrzésük gyakran megvalósítható és értékes a hosszú távú elemzésekhez.

9.6 Integráció a DevOps gyakorlatokkal

Az adatbázis-teljesítmény monitorozásának beépítése a CI/CD folyamatokba:

  • Adatbázis teljesítménymutatóinak belefoglalása a telepítési ellenőrzésbe
  • Automatizálja az új kiadások teljesítménytesztelését
  • Ellenőrizd, hogy a kódmódosítások nem befolyásolják-e negatívan a teljesítményt
  • Teljesítmény-referenciaértékek létrehozása minden kiadáshoz
  • Integrálja a monitorozási riasztásokat az incidenskezelő rendszerekkel

10. Gyakori teljesítményproblémák elhárítása

10.1 CPU szűk keresztmetszetek azonosítása

A CPU-szűk keresztmetszetek lassú lekérdezési válaszidőként és magas processzor-kihasználtságként jelentkeznek. A CPU-problémák diagnosztizálásához kövesse az alábbi lépéseket:

  1. Ellenőrizze a processzor várólista hosszának számlálóját. A 2/magonkénti érték feletti értékek a processzor terhelését jelzik.
  2. Tekintse át a processzoridő százalékos arányát. A tartósan 75% feletti értékek CPU-szűk keresztmetszetre utalnak.
  3. Távoli asztal a következőhöz: SQL Server
  4. Nyissa meg a Feladatkezelőt (Ctrl+Shift+Esc)
  5. Kattintson az folyamatok lap
  6. Jelölje be Az összes felhasználó folyamatainak megjelenítése
  7. Kattintson az CPU oszlopfejléc a CPU-használat szerinti rendezéshez
  8. Azonosítsa, hogy mely folyamatok használják a CPU-erőforrásokat

Ha nemSQL Server Ha az alkalmazások jelentős CPU-t használnak, távolítsa el őket az adatbázis-kiszolgálóról. Ha az sqlservr.exe magas CPU-t használ, vizsgálja meg a következő módszerekkel:

  • Ellenőrizd az SQL fordítások/másodperc és az SQL újrafordítások/másodperc számát. A Batch Requests/másodperc 10%-a feletti értékek túlzott fordítást jeleznek.
  • A sys.dm_exec_query_stats lekérdezése a CPU-igényes lekérdezések azonosításához
  • Végrehajtási tervek áttekintése hiányzó indexek vagy nem hatékony műveletek szempontjából
  • Fontolja meg indexek hozzáadását a táblabeolvasások csökkentése érdekében

10.2 Memóriaproblémák diagnosztizálása

A memóriaproblémák jelentősen befolyásolják SQL Server teljesítmény. A memóriaproblémák diagnosztizálásához használja ezeket a jelzőket:

Elérhető memóriacseppek

Ha az elérhető megabájtok száma folyamatosan 100 MB alá csökken, az operációs rendszer memóriaproblémákkal néz szembe.tarváció. A Windows lapozhat ki SQL Server memóriát lemezre, ami teljesítményromlást okoz.

Alacsony oldal élettartam

A 300 másodperc alatti várható oldalélettartam a puffer gyorsítótárának magas forgalmát jelzi. Ez vagy elégtelen memória-elosztásra, vagy a lekérdezések által okozott túlzott memóriaterhelésre utal.

Alacsony puffer gyorsítótár találati arány

A puffer gyorsítótár találati aránya 99% alatt azt jelenti, hogy SQL Server gyakran lemezről olvassa az adatokat a memória helyett. Ez akkor fordul elő, ha a pufferkészlet túl kicsi, vagy SQL Server még mindig melegszik a res utántart.

Memória támogatások függőben

A függőben lévő memória-kiegészítések mezőben 0 feletti érték azt jelzi, hogy a lekérdezések memória-kiegészítésekre várnak. Ez kritikus memóriahiányt jelez, amely azonnali beavatkozást igényel.

A memóriaproblémák megoldásához:

  1. konfigurálása SQL Server maximális memória beállítás, hogy elegendő RAM maradjon az operációs rendszer számára (általában 4-8 GB a szerver méretétől függően)
  2. Engedélyezze a „Lapalak zárolása a memóriában” engedélyt a következőhöz: SQL Server szolgáltatási fiók
  3. Bővítsen fizikai RAM-mal a szervert, ha a memóriahiány továbbra is fennáll
  4. Memóriaigényes lekérdezések azonosítása és optimalizálása

10.3 Lemez I/O problémák megoldása

A lemezes I/O gyakran az adatbázis-rendszerek elsődleges teljesítménybeli szűk keresztmetszetévé válik. A lemezproblémákat a következő módszerekkel diagnosztizálhatja:

Nagy lemezsor hossza

Ha a lemez sorhossza folyamatosan 2 felett van (vagy RAID esetén lemezenként 2), az azt jelzi, hogy a lemez alrendszer nem tudja tartani a lépést az I/O kérésekkel. Ez függőben lévő műveletek várakozását hozza létre.

Túlzott lemezkésleltetés

A 10-20 ms feletti átlagos lemezsebesség (másodperc/olvasás) és az átlagos lemezsebesség (másodperc/írás) értékek lassú lemezválaszidőt jeleznek. A tranzakciónapló-meghajtók különösen gyors teljesítményt igényelnek, ideális esetben 5 ms alatt írási időt.

Magas % lemezidő

A 85% feletti tartós % lemezidő a lemez telítettségét jelzi. A lemez percost az I/O kérések feldolgozásának idejéből, kevés üresjárati kapacitással.

A lemezproblémák kezelése előtt ellenőrizze, hogy azok nem memóriaproblémák tünetei. SQL Server hogy több adatot olvasson be a lemezről, mesterségesen növelve a lemezmetrikákat.

Az eredeti lemez I/O problémáinak megoldása:

  • Váltson gyorsabb lemezekre (SSD-k HDD helyett)
  • RAID konfigurációk megvalósítása a jobb teljesítmény érdekében
  • Adatbázisfájlok, tranzakciónaplók és tempdb elkülönítése különböző fizikai meghajtókon
  • Bővítsen több memóriát a lemezolvasások csökkentése érdekében
  • Indexek optimalizálása a felesleges I/O csökkentése érdekében
  • Gyengén teljesítő lekérdezések áttekintése és optimalizálása

10.4 Blokkolás és holtpontok kezelése

Blokkolás akkor történik, amikor egy munkamenet olyan zárolásokat tartalmaz, amelyek megakadályozzák a többi munkamenet folytatását. Figyelje ezeket a számlálókat a blokkolási problémák azonosításához:

  • Blokkolt folyamatok: Ideális esetben 0-nak kellene lennie
  • Zárolási várakozások/másodperc: Várakozást igénylő zárolási kérelmek száma
  • Átlagos várakozási idő: A zárolási várakozások átlagos időtartama

A blokkolás kivizsgálásához:

  1. Nyissa meg az Aktivitásfigyelőt az SSMS-ben
  2. Bontsa ki a folyamatok szakasz
  3. Keressen olyan folyamatokat, amelyek nem nullával rendelkeznek Blokkolta értékek
  4. A blokkoló munkamenet azonosítójának azonosítása
  5. Tekintse át a blokkolást okozó lekérdezéseket

Részletesebb blokkolási elemzéshez használja az sp_WhoIsActive paramétert. A túlzott wait_info bejegyzések gyakran tempdb-versenciára vagy blokkolási problémákra utalnak.

A blokkolás csökkentése érdekében:

  • Tranzakció időtartamának minimalizálása
  • Használjon megfelelő izolációs szinteket
  • Indexek hozzáadása a zárolási időtartam csökkentéséhez
  • Vegye figyelembe a READ_COMMITTED_SNAPSHOT elkülönítését
  • Hosszú ideig futó lekérdezések áttekintése és optimalizálása

10.5 Lekérdezési teljesítményproblémák

A költséges lekérdezések azonosítása elengedhetetlen az SQL teljesítményfigyeléséhez. Használja ezeket a módszereket a problémás lekérdezések megtalálásához:

Az Activity Monitor használata

  1. Az SSMS-ben kattintson a jobb gombbal a kiszolgáló nevére.
  2. választ Activity Monitor
  3. Bontsa Legutóbbi drága lekérdezések
  4. Nagy CPU-, időtartam- vagy logikai olvasási igényű lekérdezések áttekintése

DMV-k használata

A sys.dm_exec_query_stats lekérdezése az erőforrás-igényes lekérdezések azonosításához:

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

Végrehajtási tervek elemzése

  1. Az SSMS-ben nyisson meg egy új lekérdezési ablakot
  2. Kattints Becsült végrehajtási terv megjelenítése (Ctrl+L) vagy Tartalmazza a tényleges végrehajtási tervet (Ctrl+M)
  3. Végezze el a lekérdezését
  4. Tekintse át a költséges műveletek végrehajtási tervét
  5. Keressen táblázatos beolvasásokat, indexbeolvasásokat vagy magas szintű beolvasásokat.ost művelet

Optimalizálja a lekérdezéseket a következők szerint:

  • Megfelelő indexek hozzáadása
  • Lekérdezések átírása a költséges műveletek elkerülése érdekében
  • Statisztikák frissítése
  • SELECT helyett adott oszlopnevek használata *
  • A felesleges DISTINCT vagy ORDER BY záradékok elkerülése

10.6 Sérült adatbázis észlelése és javítása

Az adatbázis sérülése teljesítményromlást, adatvesztést és rendszerhibákat okozhat. A sérülés gyors észlelése és kezelése kritikus fontosságú az adatbázis egészségének megőrzése érdekében.

Adatbázis-sérülésjelzők

Figyeljen a lehetséges korrupció jeleire:

  • Hibaüzenetek a SQL Server hibanapló (823, 824 vagy 825 hiba)
  • Váratlan alkalmazáshibák adott táblák elérésekor
  • Lassú lekérdezési teljesítmény korábban gyors lekérdezések esetén
  • SQL Server összeomlások vagy váratlan hibáktarts
  • Gyanús oldalak jelennek meg az msdb.dbo.suspect_pages táblában

DBCC CHECKDB használata észleléshez

DBCC CHECKDB az adatbázis-sérülések észlelésének elsődleges eszköze. Futtassa rendszeresen a problémák korai felismerése érdekében.

Gyanús oldalak figyelése

SQL Server automatikusan rögzíti a gyanús oldalakat az msdb adatbázisban:

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)

A visszaadott sorok azonnali figyelmet igénylő sérülési problémákat jeleznek.

Korrupciómegelőzési stratégiák

  • Oldalellenőrzés engedélyezése CHECKSUM opcióval
  • Rendszeres adatbázis-mentések vezetése
  • Használjon megbízható hardvert hibajavítással
  • A lemez állapotának figyelése gyártói eszközökkel
  • Rendszeres DBCC CHECKDB futtatások ütemezése
  • Tart SQL Server frissítve a legújabb javításokkal

Helyreállítási és javítási lehetőségek

Ha sérüléseket észlel, kipróbálhatja a beépített eszközt DBCC CHECKDB a javításukhoz. Ha nem sikerül, használjon harmadik féltől származó eszközöket, például DataNumen SQL Recovery amely súlyos korrupciókkal tud foglalkozni.

11. Fejlett monitorozási technikák

11.1 Lekérdezéstár monitorozása

Lekérdezéstároló, bevezetve 2018-ban SQL Server 2016-ban automatikusan rögzíti a lekérdezések teljesítményadatait. Értékes betekintést nyújt a lekérdezések viselkedésébe, a végrehajtási tervekbe és a teljesítménytrendekbe.

Lekérdezéstároló engedélyezése

  1. Az SSMS Object Explorerben kattintson a jobb gombbal egy adatbázisra.
  2. választ Ingatlanok
  3. Kattintson az QueryStore oldal
  4. In Működési mód (kért)válassza Ír olvas
  5. Szükség szerint konfiguráljon további beállításokat
  6. Kattints OK

Lekérdezés teljesítményének monitorozása

Hozzáférési lekérdezéstár-jelentések az Object Exploreren keresztül:

  1. Az adatbázis kibontása az Object Explorerben
  2. Bontsa QueryStore
  3. Válasszon az elérhető jelentések közül:
    • Regresszált lekérdezések
    • Teljes erőforrás-fogyasztás
    • Legnagyobb erőforrás-igényű lekérdezések
    • Kényszerített tervekkel rendelkező lekérdezések
    • Követett lekérdezések

Terv regressziós észlelése

A Lekérdezéstároló automatikusan észleli, ha a lekérdezés-végrehajtási tervek megváltoznak és a teljesítmény romlik. A Regresszált lekérdezések jelentéssel azonosíthatja a tervmódosítások által érintett lekérdezéseket.

Kényszerített tervkezelés

Amikor a Query Store jobb végrehajtási tervet azonosít, kényszerítse ki SQL Server használni:

  1. Nyissa meg a lekérdezést a Lekérdezéstárban
  2. Kattintson a jobb gombbal a kívánt tervre
  3. választ Erőterv

Ez azonnal javítja a teljesítményt anélkül, hogy kódmódosításra lenne szükség.

11.2 Indexkarbantartás-felügyelet

Az indexfragmentáció idővel rontja a lekérdezések teljesítményét. Az optimális teljesítmény biztosítása érdekében rendszeresen figyelje és tartsa karban az indexeket.

Töredezettség-ellenőrzés

Ezzel a lekérdezéssel ellenőrizheti az index töredezettségét:

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

Futtassa ezt a lekérdezést csúcsidőn kívül, mivel erőforrás-igényes lehet.

Oldalsűrűség-elemzés

Az oldalsűrűség jelzi, hogy mennyire tele vannak az indexoldalak. Az alacsony sűrűség helyet pazarol és csökkenti a teljesítményt:

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

Átszervezési vs. újjáépítési döntések

Válassza ki az indexkarbantartási műveleteket a fragmentáció szintje alapján:

  • 10-30%-os töredezettség: Használja az ALTER INDEX REORGANIZE parancsot.
  • 30%-nál nagyobb töredezettség: Használja az ALTER INDEX REBUILD parancsot
  • Fragmentáció < 10%: Nincs szükség beavatkozásra

Az átszervezési műveletek kevesebb erőforrást igényelnek, és online is futtathatók. Az újraépítési műveletek alaposabbak, de jelentős erőforrásokat fogyasztanak.

11.3 Adatbázis-statisztikák frissítései

Adatbázis-statisztika segítség SQL Serverlekérdezésoptimalizálója hatékony végrehajtási terveket hoz létre. Az elavult statisztikák gyenge lekérdezési teljesítményhez vezetnek.

Automatikus statisztika újraépítése

Automatikus statisztikai frissítések engedélyezése:

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

Monitoring Statisztikák Egészségügy

Nézd meg, mikor frissültek utoljára a statisztikák:

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

Statisztikák manuális frissítése szükség esetén:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Egyéni teljesítményadatok gyűjtése

Egyéni teljesítményfigyelési megoldásokat hozhat létre a sys.dm_os_performance_counters közvetlen lekérdezésével és az eredmények táblázatokban történő tárolásával.

Egyéni gyűjteményszkriptek létrehozása

Hozzon létre egy tárolt eljárást a teljesítményszámláló adatainak gyűjtésére:

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

A sys.dm_os_performance_counters használata

Teljesítményszámlálók közvetlen lekérdezése:

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

Történelmi adatok tárolása

Hozz létre egy táblázatot a teljesítménymutatók időbeli eloszlásának tárolására:

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 adattárolási módszerek

Tárolja az adatokat elforgatott formátumban, mintavételi időpontonként egy sorral és számlálónként egy oszloppal. Ez csökkenti a tárhelyet és javítja a lekérdezési teljesítményt a számlálónként és mintánként egy sor tárolásához képest.

11.5 Többszerveres monitorozás

Többszörös környezetekhez SQL Server példányokban, központosított felügyeletet kell megvalósítani.

Központosított monitorozási megközelítés

  • Hozz létre egy dedikált monitorozási adatbázist egy külön szerveren
  • Adatok gyűjtése az összes szerverről a központi adattárba
  • Felhasználás SQL Server Ügynöki feladatok gyűjtési szkriptek futtatásához
  • Hálózatról elérhető teljesítményszámláló-gyűjtemény megvalósítása

Távoli szerver megfigyelés

Konfigurálja a Teljesítményfigyelőt távoli szerverekről történő adatgyűjtésre a szervernevek megadásával a számlálók hozzáadásakor. Győződjön meg arról, hogy a tűzfalszabályok engedélyezik a Teljesítményfigyelő forgalmát.

Kiszolgálók közötti jelentéskészítés

Készítsen jelentéseket, amelyek összehasonlítják a több szerver teljesítményét, hogy azonosítsák a kiugró értékeket és a kapacitásbeli egyensúlyhiányokat.

12. megfigyelés SQL Server felhőalapú környezetekben

12.1 Azure SQL Database monitorozása

Az Azure SQL Database beépített monitorozási képességeket kínál, amelyek eltérnek a helyszíni megoldásoktól. SQL Server.

Azure Monitor integrációja

Az Azure Monitor automatikusan gyűjti a metrikák adatait az Azure SQL Database-ből, beleértve a következőket:

  • DTU vagy virtuális mag kihasználtsága
  • Tárolás használat
  • Csatlakozási statisztikák
  • Holtpontok és időtúllépések

Ezekhez a mérőszámokhoz az Azure Portalon vagy az Azure Monitor API-n keresztül férhet hozzá.

Beépített monitorozási funkciók

Az Azure SQL Database a következőket tartalmazza:

  • Automatikus hangolási ajánlások
  • Lekérdezési teljesítményinformáció
  • Intelligens elemzések az anomáliadetektáláshoz
  • Beépített riasztás és diagnosztikaostics

Lekérdezési teljesítményinformáció

Ez a funkció vizualizációt biztosít a legnagyobb erőforrás-igényű lekérdezésekről, a lekérdezések időtartamának elemzéséről és a korábbi teljesítménytrendekről. Hozzáférés az Azure Portalon az SQL Database erőforrás alatt.

12.2 Felhőalapú monitorozó eszközök

A felhőplatformok natív, a környezetükre optimalizált monitorozási megoldásokat kínálnak:

  • Azure Monitor és Application Insights az Azure SQL Database-hez
  • AWS CloudWatch RDS-hez SQL Server
  • Google Cloud Monitoring felhőalapú szolgáltatások SQL Server

Ezek az eszközök zökkenőmentesen integrálódnak a felhőinfrastruktúrába, és egységes felügyeletet biztosítanak az összes felhőalapú erőforráson.

Hibrid környezetmonitorozás

Helyi és felhőalapú hibrid telepítésekhez használjon olyan eszközöket, amelyek mindkét környezetet támogatják, például a Redgate SQL Monitort, a SolarWinds DPA-t vagy az egyéni megoldásokat központosított adatgyűjtés használatával.

12.3 Teljesítménybeli különbségek a felhőben

felhő SQL Server A környezetek egyedi jellemzőkkel rendelkeznek:

Erőforrás-elosztási modellek

A felhőszolgáltatók különböző erőforrás-elosztási módszereket (DTU-k, virtuális magok, kiszolgáló nélküli megoldások) használnak, amelyek befolyásolják a teljesítménymutatók értelmezését. Ismerje meg a szolgáltatási szintje korlátait és jellemzőit.

Méretezési szempontok

A felhőalapú környezetek dinamikus skálázási lehetőségeket kínálnak. Figyelemmel kísérheti az erőforrás-kihasználtságot, hogy megállapítsa, mikor kell fel- vagy leskálázni. Számos felhőplatform automatikus skálázást biztosít a teljesítményküszöbök alapján.

13. Teljesítményfigyelés automatizálása

13.1 SQL Server Jobs ügynök

Adatgyűjtés automatizálása a következővel: SQL Server Ügynöki feladatok a manuális beavatkozás nélküli konzisztens monitorozáshoz.

Ütemezett adatgyűjtés

  1. Az SSMS-ben bontsa ki SQL Server Ügynök
  2. Kattintson a jobb gombbal Állások és válassza ki a Új Munka
  3. Nevezd el a feladatot (pl. „Teljesítménymutatók gyűjtése”)
  4. Kattints Lépései és adj hozzá egy új lépést
  5. Típus beállítása erre: Transact-SQL szkript
  6. Adja meg az adatgyűjtési szkriptet
  7. Kattints menetrendek és adj hozzá egy ütemtervet
  8. Gyakoriság konfigurálása (pl. 5 percenként)
  9. Kattints OK létrehozni a munkát

Automatizált jelentéskészítés

Teljesítményjelentéseket generáló és e-mailben elküldő feladatok létrehozása:

  1. Hozzon létre egy tárolt eljárást, amely jelentéseket generál
  2. Jelentések küldése e-mailben az Adatbázis Mail használatával
  3. A feladat ütemezése napi vagy heti futtatásra

13.2 PowerShell-automatizálás

A PowerShell hatékony automatizálási lehetőségeket kínál SQL Server teljesítményfigyelő.

Teljesítményszámláló-gyűjtési szkriptek

$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-lekérdezések

WMI használata teljesítményadatok gyűjtésére távoli szerverekről:

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

Automatizált riasztás

Hozzon létre PowerShell-szkripteket, amelyek ellenőrzik a metrikák értékét, és riasztásokat küldenek a küszöbértékek túllépése eseté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 Monitoring irányítópultok létrehozása

Vizualizálja a teljesítményadatokat interaktív irányítópultokkal a jobb betekintés érdekében.

Power BI integráció

  1. Power BI csatlakoztatása a teljesítményadat-táblázatokhoz
  2. Vizualizációk létrehozása a legfontosabb mutatókhoz
  3. Szeletelők hozzáadása időtartományhoz és szerverkiválasztáshoz
  4. Irányítópultok közzététele a Power BI szolgáltatásban
  5. Automatikus frissítési ütemtervek konfigurálása

Valós idejű irányítópult létrehozása

Használjon olyan eszközöket, mint a Grafana, vagy egyéni webes alkalmazásokat valós idejű irányítópultok létrehozásához, amelyek közvetlenül lekérdezik a DMV-ket és a teljesítményszámlálókat.

Történelmi trendek vizualizációja

Készítsen vonaldiagramokat, amelyek az időbeli trendeket mutatják a következőkre vonatkozóan:

  • CPU kihasználtság
  • Memóriahasználat
  • Lemez I / O
  • Lekérdezés teljesítménye
  • Kapcsolatok száma

14. Esettanulmányok és gyakorlati példák

14.1 Esettanulmány: A memórianyomás megoldása

Tünet azonosítás

Egy produkció SQL Server csúcsidőben lassú lekérdezési válaszidőket tapasztaltak. A felhasználók panaszkodtak az alkalmazások időtúllépésére és a teljesítmény romlására.

Ellenelemzés

A Teljesítményfigyelő adatainak feltárása:

  • Az oldal várható élettartama 50 másodpercre csökkent (normál: >300)
  • A puffer gyorsítótár találati aránya 85%-ra esett vissza (normál: >99%)
  • A függőben lévő memória-támogatások gyakran 5-10 közötti értékeket mutattak.
  • A fizikai lemezek olvasási sebessége másodpercenként jelentősen megnőtt

Megoldás lépései

  1. kockás SQL Server maximális memória beállítás – kiderült, hogy alapértelmezettre van állítva (korlátlan)
  2. Teljes szervermemória vs. áttekintés TarSzervermemória beszerzése – jelentős hiányt mutatott
  3. A maximális szervermemória úgy van beállítva, hogy 8 GB maradjon az operációs rendszer számára
  4. Engedélyezve a „Memóriában tárolt oldalak zárolása” engedély a következőhöz: SQL Server szolgáltatási fiók
  5. További 32 GB RAM-mal bővítettük a szervert
  6. Egy hétig figyelt teljesítmény – Az oldalak várható élettartama 500 másodperc felett stabilizálódott

Eredmény: A lekérdezésekre adott válaszidők 60%-kal javultak, a felhasználói panaszok megszűntek, és az alkalmazások teljesítménye visszaállt a normális kerékvágásba.

14.2 Esettanulmány: CPU teljesítményoptimalizálás

Tünet azonosítás

A SQL Server folyamatosan 90% feletti CPU-kihasználtságot mutatott munkaidőben, ami lassú alkalmazásteljesítményt és felhasználói frusztrációt okozott.

Ellenelemzés

A teljesítménymonitorozás feltárta:

  • A feldolgozási idő átlagosan 92% volt, gyakori 100%-os csúcsokkal.
  • A processzor várólistájának hossza következetesen 4 felett volt (a szerver 8 maggal rendelkezett)
  • Az SQL-fordítások száma másodpercenként a Batch-kérelmek számának 25%-a volt másodpercenként (kellene <10%-nak lennie).
  • Az SQL újrafordítások száma másodpercenként a kötegelt kérések másodpercenkénti számának 15%-a volt.

Megoldás lépései

  1. DMV-ket használt a legnagyobb CPU-igényű lekérdezések azonosítására
  2. Az azonosított lekérdezések végrehajtási terveinek elemzése
  3. Több táblaszkennelést fedeztem fel nagyméretű táblákon hiányzó indexek miatt.
  4. A végrehajtási terv ajánlásai alapján létrehozta a megfelelő indexeket
  5. Azonosított dinamikus SQL, amely túlzott fordítást okozott
  6. Módosított alkalmazáskód paraméteres lekérdezések használatához
  7. Megvalósított terv útmutató problémás tárolt eljárásokhoz
  8. Frissített statisztikák a gyakran használt táblázatokról

Eredmény: A CPU-kihasználtság átlagosan 45%-ra csökkent munkaidőben. A lekérdezések végrehajtási ideje 70%-kal javult. Az alkalmazások válaszideje jelentősen javult.

14.3 Esettanulmány: Lemez I/O szűk keresztmetszetek feloldása

Tünet azonosítás

A felhasználók rendkívül lassú alkalmazásválaszokról számoltak be az adatbetöltési műveletek és az esti kötegelt feldolgozás során.

Ellenelemzés

A teljesítményadatok a következőket mutatták:

  • Az átlagos lemezsebesség másodpercenként meghaladta a 45 ms-ot a tranzakciónapló-meghajtón.
  • A lemezes sor hossza átlagosan 12 az adatfájl-meghajtón
  • A % lemezidő órákon át 95% felett maradt kötegelt feladatok során.
  • Az oldalírások száma másodpercenként kivételesen magas volt

Megoldás lépései

  1. Az ellenőrzött memóriabeállítások megfelelőek voltak – nem találtak memóriaproblémákat
  2. Lemezkonfiguráció elemzése – az összes fájlt ugyanazon az orsókészleten találta
  3. Külön tranzakciónaplók dedikált gyors SSD meghajtókon
  4. A tempdb-t külön SSD meghajtókra helyeztük át.
  5. Több tempdb adatfájlt implementált (magonként egyet)
  6. RAID 10 SSD konfigurációra frissített adatfájl-meghajtók
  7. Optimalizált kötegelt feladatok kisebb tranzakciós kötegek használatához
  8. Indexeket adtunk hozzá a kötegelt műveletek során fellépő szükségtelen táblabeolvasások csökkentése érdekében.

Eredmény: Az átlagos lemezsebesség másodpercenként 3 ms-ra csökkent. A lemez várólistájának hossza átlagosan 1 alá csökkent. A kötegelt feladatok befejezési ideje 75%-kal csökkent.

15. Jövőbeli trendek SQL Server megfigyelés

15.1 AI és gépi tanulási integráció

A mesterséges intelligencia és a gépi tanulás átalakulóban van SQL Server teljesítményfigyelő.

Prediktív elemzés

A gépi tanulási modellek a historikus adatok alapján előrejelzik a jövőbeli erőforrásigényeket. Ezek a rendszerek képesek előre jelezni:

  • Amikor a tárolókapacitás kimerül
  • Várható CPU- és memóriaigény csúcsidőszakokban
  • A lekérdezési teljesítmény romlása, mielőtt az a felhasználókat érintené
  • Optimális időpontok a karbantartási műveletekhez

Anomáliadetektálás

A mesterséges intelligencia által vezérelt eszközök automatikusan észlelik a teljesítménymutatókban található szokatlan mintákat. Azonosítják azokat az anomáliákat, amelyeket az emberi adminisztrátorok esetleg nem figyelnek, és különbséget tesznek a normális eltérések és a valódi problémák között.

Automatizált helyreállítás

Az önjavító rendszerek automatikusan megoldják a gyakori problémákat, amikor azokat észlelik:

  • Restarleállt szolgáltatások
  • Erőforrások újraelosztása csúcsterhelés alatt
  • Gyógyjavítások alkalmazása ismert problémákra
  • Fragmentált indexek automatikus újraépítése

15.2 Felhőalapú monitorozás evolúciója

A felhőalapú monitorozás folyamatosan fejlődik, új képességekkel bővül.

Egységes felügyeleti platformok

A modern platformok egyetlen üvegtáblából álló láthatóságot biztosítanak a következőkön keresztül:

  • Helyszíni SQL Server példányok
  • Cloud-hosted adatbázisok
  • Hibrid környezetek
  • Alkalmazás teljesítménye
  • Infrastruktúra-metrikák

Megfigyelhetőségi trendek

A monitorozásról a megfigyelhetőségre való áttérés a következőket hangsúlyozza:

  • A rendszer viselkedésének megértése a kimenetekből
  • Metrikák, naplók és nyomkövetések korrelációja
  • Mélyreható betekintést nyújt az elosztott rendszerekbe
  • Valós idejű problémameghatározás

15.3 Önjavító adatbázisrendszerek

Jövő SQL Server verziók több autonóm képességet is tartalmaznak majd.

Automatikus optimalizálás

Az adatbázisok folyamatosan optimalizálják magukat a következők révén:

  • Indexek automatikus létrehozása és törlése a munkaterhelés alapján
  • Konfigurációs beállítások módosítása az optimális teljesítmény érdekében
  • Nem hatékony lekérdezések átírása transzparens módon
  • Erőforrás-elosztás dinamikus kezelése

Intelligens hangolás

A fejlett rendszerek a teljesítménymintázatokból tanulva automatikusan alkalmazzák a hangolási ajánlásokat, csökkentve a manuális adatbázis-adminisztrátor (DBA) beavatkozásának szükségességét.

16. Következtetések és legfontosabb tudnivalók

16.1 Az alapvető monitorozási gyakorlatok összefoglalása

Hatékony SQL Server A teljesítményfigyelő átfogó megközelítést igényel, amely ötvözi az eszközöket, technikákat és a legjobb gyakorlatokat.

Kritikus Számlák Összefoglalója

A monitoring erőfeszítéseit ezekre az alapvető számlálókra kell összpontosítani:

  • Memória: Oldal várható élettartama, Puffer gyorsítótár találati aránya, Füőben lévő memória-engedélyek
  • CPU: % Processzoridő, Processzor várósorának hossza
  • Lemez: Átl. lemezidő másodpercben/olvasás és írás, lemez sorhossza
  • SQL ServerKöteles kérések/másodperc, Fordítások/másodperc, Felhasználói kapcsolatok

Legjobb gyakorlatok összefoglalása

  • Alapértékek meghatározása normál működés közben
  • Intelligens riasztási küszöbértékek beállítása az alapértékek alapján
  • Rendszeresen tekintse át a teljesítményadatokat
  • Egyenlegfigyelési többletterhelés adatgranulációval
  • Hosszú távú adatok megőrzése trendelemzés céljából
  • Használja a megfelelő eszközöket minden egyes monitorozási forgatókönyvhöz

16.2 Folyamatos fejlesztési megközelítés

SQL Server A teljesítményfigyelés nem egyszeri tevékenység, hanem egy folyamatos folyamat, amely folyamatos finomítást igényel.

Rendszeres felülvizsgálati ciklusok

  • Naponta: Értesítések és aktuális teljesítmény ellenőrzése
  • Heti: Trendek áttekintése és felmerülő problémák azonosítása
  • Havonta: Hosszú távú minták és kapacitásigények elemzése
  • Negyedévente: Frissítse az alapértékeket és tekintse át a monitoring hatékonyságát

Naprakészen maradni az eszközökkel

Tartsa naprakészen a monitorozó eszközöket és technikákat:

  • Új monitorozási funkciók értékelése SQL Server frissítések
  • Tesztelje az újonnan megjelenő harmadik féltől származó eszközöket
  • Vegyen részt képzéseken és konferenciákon
  • Részt vesz SQL Server közösségi fórumokon
  • Tudásmegosztás csapattagokkal

16.3 következő lépés

végrehajtja SQL Server teljesítményfigyelés szisztematikusan:

Végrehajtási ütemterv

  1. 1 hét: Teljesítményfigyelő beállítása alapvető számlálókkal
  2. 2 hét: Adatgyűjtő-készletek létrehozása automatizált gyűjtéshez
  3. 3 hét: Alapértékek meghatározása normál működés közben
  4. 4 hét: Kritikus küszöbértékekhez tartozó riasztások konfigurálása
  5. 2 hónap: További monitorozó eszközök (DMV-k, kiterjesztett események) bevezetése
  6. 3 hónap: Egyéni irányítópultok és jelentések készítése
  7. Folyamatban lévő: A tapasztalatok és a változó követelmények alapján finomítsa a monitorozást

Egyéb témák

Folytassa a tanulást SQL Server Teljesítményfigyelő Microsoft dokumentáció, közösségi blogok és gyakorlati gyakorlatok segítségével. Kísérletezzen különböző eszközökkel és technikákkal, hogy megtalálja, mi működik a legjobban az Ön környezetében.

17. Gyakran Ismételt Kérdések (GYIK)

17.1 Melyek az most fontos SQL Server teljesítményszámlálók monitorozása?

A most kritikai SQL Server A teljesítményszámlálók a következőket tartalmazzák:

  • Memória: Az oldal várható élettartama (> 300 másodpercnek kell lennie) és a puffer gyorsítótár találati aránya (> 99%-nak kell lennie)
  • CPU: % Processzoridő (tartós értékek <75%) és Processzor várósorának hossza (magonként <2-nek kell lennie)
  • Lemez: Átlagos lemezsebesség (másodperc/olvasás és írás) (<10-20 ms) és lemez várólistájának hossza (lemezenként <2)
  • SQL Server: Kötegelt kérések/másodperc, SQL-fordítások/másodperc és függőben lévő memória-engedélyek (0-nak kell lennie)

Ezek a számlálók átfogó betekintést nyújtanak a rendszer állapotába, és segítenek a szűk keresztmetszetek gyors azonosításában.

17.2 Milyen gyakran kell teljesítményadatokat gyűjtenem?

Az adatgyűjtés gyakorisága a monitorozási céloktól függ:

  • Alapszintű monitorozás: 1 percenként (60 másodpercenként)
  • Aktív hibaelhárítás: Rövid időszakokra 15-30 másodpercenként
  • Hosszú távú trend: 5 percenként

Kerülje a folyamatos, nagy gyakoriságú adatgyűjtést, mivel az befolyásolhatja a teljesítményt és túlzott mennyiségű adatot generálhat. Rutinszerű monitorozáshoz használjon hosszabb időközöket, és csak konkrét problémák kivizsgálásakor rövidebbeket.

17.3 Mi a különbség a Teljesítményfigyelő és a SQL Server Profilkészítő?

Teljesítményfigyelő és SQL Server A profilkészítők különböző célokat szolgálnak:

Performance Monitor:

  • Monitorok rendszer és SQL Server teljesítményszámlálók
  • Nyomon követi az erőforrás-kihasználtságot (CPU, memória, lemez)
  • Alacsony rezsi, folyamatos monitorozásra alkalmas
  • Időbeli összesített mutatókat biztosít

SQL Server Profilkészítő:

  • Egyedi nyomok SQL Server események és lekérdezések
  • Részletes lekérdezés-végrehajtási információkat rögzít
  • Magasabb rezsiköltség, folyamatos használatra nem ajánlott
  • Legjobb konkrét lekérdezési problémák elhárításához
  • Elavult, helyette a kiterjesztett eseményeket használják

A Teljesítményfigyelőt a teljes rendszerfigyeléshez, a Kibővített eseményeket (ne a Profilert) pedig a részletes lekérdezésszintű elemzéshez használja.

17.4 Can Performance Monitor hatása SQL Server teljesítmény?

Megfelelő konfigurálás esetén a Teljesítményfigyelő minimális hatással van a SQL Server teljesítmény, jellemzően kevesebb, mint 2% többletterhelés. A túlzott monitorozás azonban problémákat okozhat:

  • A túl sok számláló növeli a költségeket
  • A nagyon rövid mintavételi intervallumok (15 másodperc alatt) megterhelik az erőforrásokat
  • A folyamatos, nagy gyakoriságú gyűjtés nagyméretű naplófájlokat generál

A hatás minimalizálása érdekében:

  • Csak a szükséges számlálók figyelése
  • Használjon megfelelő mintavételi időközöket (60 másodperc a rutinszerű monitorozáshoz)
  • A naplókat az adatbázisfájloktól elkülönített meghajtókon tárolja
  • Erőforrás-igényes monitorozás ütemezése csúcsidőn kívüli órákra

17.5 Mennyi ideig kell megőriznem a teljesítményfigyelési adatokat?

A megőrzési idő az elemzési igényektől és a tárhelykapacitástól függ:

  • Minimális: 3 hónap a legutóbbi problémák elhárítására
  • Ajánlott: 1-2 év a kapacitástervezéshez és a trendelemzéshez
  • Optimális: Határozatlan ideig, ha a tárolás engedi, mivel a historikus adatok idővel értékesebbé válnak

A teljesítményszámláló adatai jól tömöríthetők és viszonylag kevés helyet foglalnak. Érdemes lehet a régebbi adatokat külön tárolóba archiválni a törlés helyett. Sok szervezet úgy találja, hogy az évek során felhalmozott historikus adatok felbecsülhetetlen értékűek a kapacitástervezés és a hosszú távú trendek azonosítása szempontjából.

17.6 Melyek a jó küszöbértékek a kulcsfontosságú teljesítményszámlálókhoz?

Ajánlott riasztási küszöbértékek:

  • Füőben lévő memória-engedélyek: Riasztás, ha > 0
  • Oldal várható élettartama: Riasztás, ha < 300 másodperc
  • % Processzoridő: Riasztás, ha > 80% 5 percig
  • Processzor várólista hossza: Riasztás, ha > 2 magonként
  • Átl. lemezidő másodpercenként/olvasás vagy írás: Riasztás, ha > 20 ms
  • Lemez sorhossza: Riasztás, ha > 2 lemezenként
  • Blokkolt folyamatok: Riasztás, ha > 5

Módosítsa ezeket a küszöbértékeket az alapadatok és az adott munkaterhelés-jellemzők alapján. Ami az egyik környezetben normális, az egy másikban problémákra utalhat.

17.7 Hogyan figyeljek? SQL Server teljesítmény távolról?

Monitor távirányító SQL Server esetek, amikor ezeket a módszereket alkalmazzák:

  1. Performance Monitor: Adja meg a távoli számítógép nevét számlálók hozzáadásakor
  2. PowerShell: Használja a -ComputerName paramétert a Get-Counter függvénnyel
  3. Közúti járművek: Csatlakozás távoli szerverekhez SSMS-en keresztül és DMV-k lekérdezése
  4. Harmadik féltől származó eszközök: Most a felügyeleti eszközök támogatják a távoli szerverfelügyeletet

Győződjön meg arról, hogy a tűzfalszabályok engedélyezik a Teljesítményfigyelő forgalmát, és hogy rendelkezik a megfelelő engedélyekkel a távoli szerveren. Több szerver esetén érdemes lehet központosított monitorozást megvalósítani egy dedikált monitorozó szerverrel és adatbázissal.

17.8 Mi a legjobb ingyenes eszköz a következőhöz: SQL Server teljesítményfigyelő?

Számos kiváló ingyenes eszköz áll rendelkezésre a monitorozáshoz SQL Server teljesítmény:

  • Windows Teljesítményfigyelő: Beépített, átfogó és megbízható
  • SSMS Tevékenységfigyelő: Valós idejű monitorozás további telepítés nélkül
  • Bővített események: Könnyű, beépített eseményfelügyelet SQL Server
  • sp_KiAktív: Népszerű ingyenes tárolt eljárás a részletes tevékenységfigyeléshez
  • DBA Dash: Nyílt forráskódú monitorozó eszköz átfogó funkciókkal
  • SQLFIGYELÉS: Nyílt forráskódú, közel valós idejű monitorozási képességekkel

A most szervezeteknél a Performance Monitor az SSMS eszközökkel és az sp_WhoIsActive-val kombinálva kiváló monitorozási képességeket biztosít további költségek nélkül.ost.

17.9 Hogyan exportálhatok PerfMon adatokat elemzéshez?

Teljesítményfigyelő adatok exportálása a következő módszerekkel:

Exportálás CSV-be:

  1. Nyissa meg a Teljesítményfigyelőt a betöltött naplófájllal
  2. Kattintson jobb gombbal a grafikonra, és válassza a Adatok mentése másként
  3. A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Szövegfájl (vesszővel elválasztott) (.csv)
  4. Válasszon helyet és mentse el
  5. Megnyitás Excelben elemzéshez

Használja az Újranaplózás parancsot:

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

Ez a parancssori segédprogram bináris naplófájlokat (.blg) konvertál CSV formátumba a táblázatkezelő alkalmazásokban való egyszerűbb elemzés érdekében.

17.10 Mikor érdemes külső fejlesztésű felügyeleti eszközöket használni a beépített opciók helyett?

Érdemes harmadik féltől származó eszközöket választani, ha:

  • Nagyszámú anyag kezelése SQL Server példányok (10+)
  • Központosított felügyelet szükséges több adatközpontban
  • Fejlett funkciókra van szükség, mint például a prediktív elemzés vagy anomáliadetektálás
  • Integrált riasztást szeretne az incidenskezelő rendszerekkel
  • Megfelelőségi jelentéstétel és korábbi elemzés előírása
  • Hiányoznak az adatbázis-adminisztrátorok (DBA) erőforrásai az egyedi megoldások létrehozásához és karbantartásához
  • Heterogén adatbázis-környezetek monitorozása (SQL Server, Oracle, MySQL, stb.)

A beépített eszközök jól működnek kisebb környezetekben, vagy ha képzett adatbázis-adminisztrátorok (DBA-k) tudnak egyedi monitorozási megoldásokat fejleszteni. A harmadik féltől származó eszközök az időmegtakarítás, a fejlett funkciók és a professzionális támogatás révén értéket képviselnek.

18. További források

18.1 Hivatalos dokumentáció

A Microsoft kiterjedt dokumentációt biztosít a következőkhöz: SQL Server teljesítményfigyelő:

18.2 Ajánlott eszközök és letöltések

Nélkülözhetetlen eszközök a SQL Server teljesítményfigyelő:

  • PAL eszköz: https://github.com/clinthuffman/PAL
  • sp_KiAktív: http://whoisactive.com/
  • DBA Dash: https://dbadash.com/
  • SQLFIGYELÉS: https://github.com/marcingminski/sqlwatch
  • Elsősegélycsomag (Brent Ozar): https://www.brentozar.com/first-aid/
  • SQL Server Menedzsment Stúdió: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Közösségi erőforrások

Tanulj a SQL Server közösség:

  • SQL Server Központi: https://www.sqlservercentral.com/
  • Brent Ozar blogja: https://www.brentozar.com/blog/
  • SQL-bódé: https://www.sqlshack.com/
  • MSSQL tippek: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • kötegtúlcsordulást SQL Server címke: https://stackoverflow.com/questions/tagged/sql-server

Ezek az anyagok oktatóanyagokat, hibaelhárítási tanácsokat és tapasztalt szakemberek által ajánlott gyakorlatokat kínálnak. SQL Server szakemberek. A közösségi fórumokon való részvétel segít abban, hogy mások tapasztalataiból tanulj és megoszd a saját tudásodat.


A szerzőről

Yuan Sheng több mint 10 éves tapasztalattal rendelkező vezető adatbázis-adminisztrátor (DBA) SQL Server környezetekben és vállalati adatbázis-kezelésben. Több száz adatbázis-helyreállítási forgatókönyvet oldott meg sikeresen pénzügyi szolgáltatások, egészségügyi ellátás és gyártási szervezetek számára.

Yuan specializálódott SQL Server adatbázis-helyreállítás, magas rendelkezésre állású megoldások és teljesítményoptimalizálás. Kiterjedt gyakorlati tapasztalata magában foglalja a több terabájtos adatbázisok kezelését, megvalósítását Mindig elérhetőségi csoportok, valamint automatizált biztonsági mentési és helyreállítási stratégiák kidolgozása kritikus fontosságú üzleti rendszerekhez.

Yuan műszaki szakértelmének és gyakorlatias megközelítésének köszönhetően átfogó útmutatók készítésére összpontosít, amelyek segítik az adatbázis-adminisztrátorokat és az informatikai szakembereket a komplex problémák megoldásában SQL Server hatékonyan kihívásokat intéz. Folyamatosan naprakész a legújabb információkkal. SQL Server kiadásait és a Microsoft fejlődő adatbázis-technológiáit, rendszeresen tesztelve a helyreállítási forgatókönyveket annak érdekében, hogy ajánlásai a valós legjobb gyakorlatokat tükrözzék.

Kérdései vannak a SQL Server helyreállításra vagy további adatbázis-hibaelhárítási útmutatásra van szüksége? Yuan örömmel fogadja visszajelzéseket és javaslatokat ezen technikai erőforrások fejlesztéséért.

Oszd meg most: