Zdieľať teraz:
Obsah skryť

1. Úvod do SQL Server sledovanie výkonu

1.1 Čo je SQL Server Monitor výkonu?

SQL Server Monitor výkonu je proces sledovania, analýzy a riadenia výkonu a stavu vášho SQL Server databázy. Zahŕňa zhromažďovanie a interpretáciu údajov o rôznych aspektoch vášho databázového systému s cieľom zabezpečiť optimálny výkon, predchádzať problémom a udržiavať stav databázy.

Monitorovanie výkonu zahŕňa sledovanie časov vykonávania dotazov, využitia zdrojov, výkonu indexov, blokovania a uviaznutí a vzorcov rastu databázy. Tento nepretržitý dohľad pomáha správcom identifikovať potenciálne problémy skôr, ako ovplyvnia používateľov alebo obchodné operácie.

1.2 Kľúčové výhody monitorovania výkonnosti

Efektívne SQL Server Monitor výkonu prináša niekoľko kľúčových výhod:

  • Proaktívna detekcia problémov: Identifikujte a riešte potenciálne problémy skôr, ako ovplyvnia používateľov alebo obchodné operácie
  • Optimalizácia výkonu: Identifikujte úzke miesta a neefektívnosti s cieľom zlepšiť celkový výkon databázy
  • Plánovanie kapacity: Predpovedať potreby zdrojov a plánovať budúci rast na základe historických údajov
  • Súlad a bezpečnosť: Zabezpečiť dodržiavanie regulačných požiadaviek a odhaliť podozrivé aktivity

1.3 Bežné problémy s výkonom

Bez správneho monitora výkonu databázy SQL čelia organizácie niekoľkým rizikám:

  • Neočakávané prestoje, ktoré narúšajú obchodné operácie
  • Slabý výkon aplikácie ovplyvňujúci používateľskú skúsenosť
  • Strata alebo poškodenie údajov
  • Neefektívne využívanie zdrojov vedúce k zbytočnémuosts
  • Frustrovaní používatelia a potenciálna strata príjmov

Podľa štúdie spoločnosti IDC z roku 2023 pramení 65 % problémov s výkonom databázy zo zlých postupov monitorovania alebo optimalizácie.

2. Pochopenie Monitora výkonu systému Windows (PerfMon)

2.1 Čo je Monitor výkonu systému Windows?

Monitor výkonu systému Windows (PerfMon) je vstavaný nástroj systému Windows, ktorý monitoruje systémové prostriedky a výkon aplikácií. SQL Server PerfMon poskytuje administrátorom neoceniteľné informácie o operačnom systéme aj SQL Server metriky, vďaka čomu je nevyhnutný pre komplexnú analýzu výkonnosti.

Monitor výkonu systému Windows (PerfMon)

PerfMon meria štatistiky výkonu v pravidelných intervaloch a ukladá tieto štatistiky do súborov na neskoršiu analýzu. Správcovia databáz si môžu vybrať časový interval, formát súboru a ktoré štatistiky sa majú monitorovať. Nástroj nie je SQL Server-špecifický – správcovia systému ho používajú na monitorovanie samotného systému Windows, Exchange, súborových serverov a akejkoľvek aplikácie, ktorá môže mať úzke miesta.

2.2 Spustenie Monitora výkonu

Monitor výkonu môžete spustiť niekoľkými spôsobmi:

  1. kliknite Start, typ perfmon Vo vyhľadávacom poli kliknite vo výsledku vyhľadávania na položku „Monitorovanie výkonu“:
    Vyhľadávanie a start PerfMon z vyhľadávacieho poľa systému Windows.
  2. Pre médiá Windows + R, typ perfmona stlačte tlačidlo vstúpiť
    Start PerfMon z poľa Spustiť systém Windows.
  3. prejdite na riadiace panel -> Systém a zabezpečenie -> nástroje pre správu -> sledovanie výkonu
    StarPerfMon z Ovládacieho panela -> Systém a zabezpečenie -> Nástroje na správu -> Monitor výkonu

3. nevyhnutný SQL Server Počítadlá výkonu

3.1 Počítadlá výkonu pamäte

Počítadlá pamäte sú kľúčové pre monitorovanie SQL Server výkon, pretože indikujú, či má vaša databáza dostatok pamäťových zdrojov.

Dostupné MB

Toto počítadlo zobrazuje množstvo fyzickej pamäte okamžite dostupnej na alokáciu. Malo by zostať pomerne konštantné a ideálne by nemalo klesnúť pod 4096 MB. Nízke hodnoty môžu naznačovať, že SQL ServerMaximálne nastavenie pamäte je ponechané na predvolenej hodnote alebo nieSQL Server aplikácie spotrebúvajú pamäť.

Priemerná dĺžka života na stránke

Predpokladaná životnosť stránky meria, ako dlho (v sekundách) stránka zostáva vo vyrovnávacej pamäti bez toho, aby sa na ňu odkazovalo. Normálna hodnota je 300 sekúnd alebo viac. Nižšie hodnoty naznačujú zaťaženie pamäte a nadmernú obmenu vyrovnávacej pamäte, čo znižuje efektivitu vyrovnávacej pamäte.

Pomer zásahov do vyrovnávacej pamäte

Toto počítadlo udáva percento požiadaviek na dáta, na ktoré sa odpovedalo pomocou vyrovnávacej pamäte SQL (pamäte) namiesto čítania z disku. Bežne dosahuje alebo prekračuje 99 %. Nižšie hodnoty naznačujú, že SQL Server potrebuje viac pamäte alebo sa po obnovení stále zahrievatart.

Čakajúce granty na pamäť

Toto zobrazuje počet procesov čakajúcich na pamäť v rámci SQL ServerZa normálnych podmienok by táto hodnota mala byť konzistentne 0. Vyššie hodnoty naznačujú nedostatočnú alokáciu pamäte pre SQL Server.

Tarzískať pamäť servera vs. celková pamäť servera

TarParameter „get Server Memory“ označuje ideálne množstvo pamäte. SQL Server chce použiť. Celková pamäť servera ukazuje, čo SQL Server momentálne používa. Pomer medzi týmito hodnotami by mal byť približne 1. Významné rozdiely môžu naznačovať zaťaženie pamäte alebo nedostatočnú dostupnú pamäť.

3.2 Počítadlá výkonu procesora

Počítadlá CPU pomáhajú identifikovať úzke miesta procesora a pochopiť, ako SQL Server využíva výpočtové zdroje.

% času procesora

Toto meranie meria percento uplynutého času, ktorý procesor strávi vykonávaním nečinných vlákien. Na aktívnych serveroch môžu hodnoty vyskočiť až na 100 %, ale trvalé využitie nad 70 – 75 % zvyčajne naznačuje problémy s výkonom pre používateľov. Chýbajúce alebo nedostatočné indexy často spôsobujú vysoké využitie CPU.

% privilegovaného času

Čas procesora sa delí na spracovanie v používateľskom režime a v privilegovanom režime (jadro). Všetok prístup k disku a vstupno-výstupné operácie prebiehajú v režime jadra. Ak toto počítadlo prekročí 25 %, systém pravdepodobne vykonáva príliš veľa vstupno-výstupných operácií. Normálne hodnoty sa pohybujú medzi 5 % a 10 %.

Dĺžka frontu procesora

Toto počítadlo zobrazuje vlákna čakajúce na prostriedky CPU. Hodnoty sú trvalo nad 1 (okrem prípadov SQL Server kompresia záloh) indikujú zaťaženie CPU. To často znamená, že na zariadení sú nainštalované aj iné aplikácie SQL Server stroj, čo porušuje osvedčené postupy.

Prepínanie kontextu/s

Toto meria, ako často procesor prepína medzi vláknami. Nadmerné prepínanie kontextu môže mať vplyv na výkon a indikuje vysoké zaťaženie systému.

3.3 Počítadla výkonu diskového vstupno-výstupného systému

Počítadla diskov sú nevyhnutné pre monitorovanie výkonu SQL, pretože diskové I/O operácie sa často stávajú hlavným úzkym hrdlom v databázových systémoch.

% času na disku

Toto zaznamenáva percento času, kedy bol disk zaneprázdnený operáciami čítania/zápisu. Hodnoty trvalo nad 85 % naznačujú úzke hrdlo I/O. Keďže disk je oveľa pomalší ako pamäť, zníženie tejto metriky zlepšuje výkon.

Priem. čas na disku (s/čítanie) a priem. čas na disku (s/zápis)

Tieto počítadlá merajú priemerný čas (v sekundách) pre operácie čítania a zápisu. Ak priemerné hodnoty presiahnu 10 – 20 ms, disku trvá spracovanie údajov príliš dlho. Jednotky s protokolmi transakcií vyžadujú obzvlášť rýchly zápis.

Dĺžka frontu na disku

Toto zobrazuje nevybavené požiadavky na čítanie/zápis na disk. Hodnoty trvalo vyššie ako 2 (alebo 2 na disk pre polia RAID) naznačujú, že disk nedokáže zvládnuť požiadavky na vstup/výstup.

Disk Bajty/sec

Toto monitoruje rýchlosť prenosu dát na disk a z disku. Ak prekročí menovitú kapacitu disku, dáta sa začnú hromadiť, čo sa prejaví zvýšením dĺžky frontu disku.

Prenosy disku/sec

Toto sleduje počet operácií čítania/zápisu vykonaných na disku. SQL Server Prístup k údajom je zvyčajne náhodný, čo je pomalšie kvôli pohybu hlavy disku. Uistite sa, že táto hodnota zostáva pod maximálnym výkonom vášho disku (zvyčajne 100/s pre štandardné disky).

3.4 SQL Server Konkrétne počítadlá

3.4.1 Počítadlá správcu vyrovnávacej pamäte

Monitor počítadiel Buffer Manageru SQL Serveroperácie s vyrovnávacou pamäťou:

  • Čítania stránky/sekunda: Kumulatívny počet fyzických čítaní stránok databázy
  • Zápisy stránky/sekunda: Kumulatívny počet zápisov fyzických stránok databázy
  • Lenivé zápisy/sekunda: Počet vyrovnávacích pamätí zapísaných lenivým zapisovačom na uvoľnenie pamäte
  • Strany kontrolných bodov/sekundu: Stránky vyprázdnené kontrolným bodom alebo inými operáciami vyžadujúcimi vyprázdnenie všetkých nečistých stránok

3.4.2 Počítadlá štatistík SQL

Tieto počítadlá poskytujú prehľad o SQL Server spracovanie dopytu:

  • Dávkové požiadavky/sekunda: Počet dávkových požiadaviek SQL prijatých serverom. Slúži ako referenčný bod pre aktivitu servera.
  • Kompilácie SQL/s: Počet kompilácií SQL. Mal by byť 10 % alebo menej z celkového počtu dávkových požiadaviek/s.
  • Rekompilácie SQL/s: Počet rekompilácií SQL. Mal by byť tiež 10 % alebo menej z celkového počtu dávkových požiadaviek/s.

3.4.3 Počítadlá všeobecných štatistík

  • Pripojenia používateľov: Počet používateľov pripojených k systému. Používa sa ako referenčná hodnota na sledovanie rastu pripojenia v priebehu času.
  • Blokované procesy: Aktuálny počet blokovaných procesov. Ideálne by mal byť 0.

3.4.4 Počítadlá správcu pamäte

  • Čakajúce na schválenie pamäťových grantov: Celkový počet procesov čakajúcich na pridelenie pamäte pracovného priestoru. Ideálne by mal byť 0.

4. Nastavenie monitora výkonu pre SQL Server(Windows Vista / Server 2008 a novšie verzie)

Najprv musíme vytvoriť kontajner pre jednoduchšiu správu počítadiel:

  • V systéme Windows Vista / Server 2008 a novších verziách môžete v tejto časti vytvoriť sady zberačov údajov.
  • V systéme Windows XP / Server 2003 a starších verziách môžete vytvoriť protokoly počítadiel v ďalšia sekcia.

4.1 Čo sú sady zberačov údajov?

Sady zberačov údajov organizujú počítadlá výkonu, údaje o sledovaní udalostí a informácie o konfigurácii systému do jednej zbernej jednotky. Poskytujú väčšiu flexibilitu ako jednoduché protokoly počítadiel a umožňujú automatizovaný, plánovaný zber údajov pre komplexné monitorovanie výkonu databázy SQL.

4.2 Vytvorenie sady zberačov údajov

Vytvorenie vlastnej sady zberačov údajov na monitorovanie SQL Server počítadlá výkonu:

  1. Otvoriť Monitor výkonu
  2. Rozšíriť Sady zberačov údajov
  3. Kliknite pravým tlačidlom myši Definované užívateľom
  4. vybrať Nový -> Súprava zberača údajov
    Vytvorenie novej sady zberačov údajov v PerfMone
  5. Zadajte popisný názov (napr. „SQL Server „Metriky výkonnosti“)
  6. vybrať Vytvoriť manuálne (pokročilé)
    Nastavte názov popisu pre množinu zberačov údajov
  7. kliknite ďalšie
  8. Kontrola Vytvoriť protokoly údajov -> Počítadlo výkonu
    V sprievodcovi Vytvorenie novej sady zberačov údajov vyberte možnosť Vytvoriť protokoly údajov -> Počítadlo výkonu.
  9. kliknite ďalšie
  10. kliknite pridať vybrať počítadlá
  11. pridať požadovanú SQL Server a systémové počítadlá.
    Pridajte počítadlá výkonu do novej sady zberačov údajov.
  12. Sada Interval vzorky
    • Pre bežné monitorovanie použite 1 minútu (60 sekúnd)
    • Pre aktívne riešenie problémov použite 15 – 30 sekúnd
    • Vyhnite sa dlhodobému spúšťaniu vysokofrekvenčných záznamov, pretože môžu ovplyvniť výkon a generovať nadmerné množstvo údajov.

    Nastavte interval vzorkovania v novom sprievodcovi sadou zberačov údajov.

  13. kliknite ďalšie
  14. Vyberte umiestnenie na uloženie protokolov
    V novom sprievodcovi nastavení zberača údajov nastavte umiestnenie na uloženie údajov o výkone.
  15. kliknite úprava, vytvorí sa nová sada zberačov údajov.
  16. Nová sada zberačov údajov bude predvolene NIE JE byť starautomaticky. Nájdete ho v ľavom paneli pod výkon -> Sady zberačov údajov -> Definované užívateľom -> Váš zberač údajov, kliknite naň pravým tlačidlom myši a vyberte Start
    Starnovú sadu zberačov údajov v PerfMone.

4.3 Kľúčové počítadlá, ktoré je potrebné pridať

  • Pamäť -> Dostupné MB
  • Fyzický disk -> Priemerný počet sekúnd na čítanie z disku (všetky inštancie okrem _Total)
  • Fyzický disk -> Priemerný počet sekúnd na disku/zápis (všetky inštancie okrem _Total)
  • Fyzický disk -> Čítania z disku/s (všetky inštancie okrem _Total)
  • Fyzický disk -> Zápisy na disk/s (všetky inštancie okrem _Total)
  • Procesor -> % času procesora (všetky inštancie okrem _Total)
  • SQLServer: Všeobecné štatistiky -> Pripojenia používateľov
  • SQLServer: Správca pamäte -> Čakajúce na udelenie pamäte
  • SQLServer: Štatistika SQL -> Dávkové požiadavky/s
  • SQLServer: Štatistika SQL -> Kompilácie SQL/s
  • SQLServer: Štatistika SQL -> Rekompilácie SQL/s
  • Systém -> Dĺžka frontu procesora

4.4 Nastavenie podmienok zastavenia

Nakonfigurujte podmienky zastavenia, aby ste zabránili neobmedzenému rastu údajov:

  1. Po vytvorení sady zberačov údajov na ňu kliknite pravým tlačidlom myši a vyberte vlastnosti
  2. Kliknite na tlačidlo Stav zastavenia pútko
  3. Umožniť Celkové trvanie
  4. Nastaviť trvanie na 1 deň (24 hodín)
  5. kliknite OK ušetriť

Nastavte podmienku zastavenia pre sadu zberačov údajov

Vďaka tomu sa protokol príliš nezväčší a automaticky sa znova načíta.tarts, ak je naplánované.

4.5 Plánovanie zberu údajov

Automatizujte zber údajov, aby ste zabezpečili konzistentné monitorovanie:

  1. Kliknite pravým tlačidlom myši na svoju sadu zberačov údajov a vyberte vlastnosti
  2. Kliknite na tlačidlo Naplánovať pútko
  3. kliknite pridať vytvoriť nový rozvrh
  4. Konfigurovať stardátum a čas
  5. Nastaviť vzorec opakovania (napr. denne)
  6. kliknite OK uložiť rozvrh

Nastavenie plánu pre sadu zberačov údajov

Pre automatické startup, nakonfigurujte sadu zberačov údajov na start pri spustení servera vytvorením akotarspúšťač tup v Plánovači úloh systému Windows.

5. Nastavenie monitora výkonu pre SQL Server(Windows XP / Server 2003 a staršie verzie)

V systéme Windows XP / Server 2003 a starších verziách môžete vytvoriť protokoly počítadiel, ktoré vám umožňujú vybrať sadu počítadiel výkonu a pravidelne ich zaznamenávať do súboru.

5.1 Vytváranie záznamov počítadla

Ak chcete vytvoriť nový protokol počítadla, postupujte podľa týchto krokov:

  1. Otvoriť Monitor výkonu
  2. Rozšíriť Výstrahy a protokolovanie výkonu v ľavom paneli
  3. Kliknite pravým tlačidlom myši Záznamy počítadla
  4. vybrať Nové nastavenia protokolu
  5. Pomenujte protokol názvom vášho databázového servera (napr. „ProductionSQL01“)
  6. kliknite OK začať s konfiguráciou

Vytvorenie samostatných protokolov počítadiel pre každý server vám umožňuje testovať výkon na jednotlivých serveroch bez toho, aby ste museli zhromažďovať údaje pre všetky servery súčasne.

5.2 Pridávanie počítadiel výkonu

Po vytvorení protokolu počítadla pridajte konkrétne počítadlá výkonu, ktoré chcete monitorovať:

  1. Kliknite na tlačidlo Pridať počítadlá gombík
  2. Zmeňte názov počítača tak, aby odkazoval na váš SQL Server inštancie
  3. Pre médiá Tab načítať dostupné objekty výkonu
  4. Vyberte výkonnostný objekt z rozbaľovacej ponuky (napr. Memory Masážne stoly)
  5. Vyberte konkrétne počítadlá z zoznam
  6. Vyberte prípady, ak je to relevantnécab(napr. jednotlivé procesory alebo disky)
  7. kliknite pridať zahrnúť počítadlo
  8. Opakujte pre všetky požadované počítadlá
  9. kliknite Zavrieť po dokončení

5.3 Konfigurácia intervalov vzoriek

Interval vzorkovania určuje, ako často nástroj Performance Monitor zhromažďuje údaje. Nakonfigurujte vhodné intervaly na základe vašich potrieb monitorovania:

  1. Vo vlastnostiach protokolu počítadla vyhľadajte Vzorky údajov každých
  2. Nastavenie intervalu (predvolená hodnota je 15 sekúnd)
  3. Pre monitorovanie základnej línie používajte 1-minútové intervaly pre denný zber
  4. Pri riešení problémov používajte 15-30 sekundové intervaly pre krátke dávky
  5. kliknite OK uplatňovať

Pamätajte, že menšie intervaly generujú viac údajov, ktoré sa môžu ťažšie vykresľovať a analyzovať. Väčšie intervaly môžu vynechať dôležité výkyvy. Vyvážte granularitu údajov s požiadavkami na úložisko a analýzu.

5.4 Konfigurácia súborov denníka

Správna konfigurácia súboru denníka zabezpečuje efektívne a prístupné ukladanie údajov:

  1. Kliknite na tlačidlo Súbory protokolu karta vo vlastnostiach protokolu počítadla
  2. Zmeniť typ súboru denníka na Textový súbor (oddelený čiarkou) pre jednoduchý import z Excelu
  3. kliknite Konfigurácia
  4. Nastavte cestu k súboru na vyhradené miesto (napr. zdieľaný priečinok PerformanceLogs)
  5. kliknite OK na potvrdenie

Na ukladanie protokolov použite zdieľané úložisko prístupné cez sieť, aby ste mohli k súborom pristupovať na diaľku a zdieľať ich s ostatnými používateľmi.

5.5 Nastavenie poverení

Nakonfigurujte príslušné poverenia, aby mal Performance Monitor prístup k vzdialeným SQL Server prípady:

  1. Vo vlastnostiach protokolu počítadla vyhľadajte Spustiť ako
  2. Zadajte používateľské meno vašej domény vo formáte: DOMÉNA\používateľské meno
  3. kliknite Nastaviť heslo
  4. Zadajte a potvrďte svoje heslo
  5. kliknite OK ušetriť

To umožňuje službe PerfMon zhromažďovať štatistiky pomocou oprávnení vašej domény, a nie vlastných prihlasovacích údajov.

6. Analýza údajov z monitora výkonu

6.1 Zobrazenie súborov denníka v nástroji Performance Monitor

Monitor výkonu dokáže zobraziť historické údaje z uložených súborov denníka:

  1. Otvoriť Monitor výkonu
  2. Na ľavom paneli kliknite na Monitorovacie nástroje -> sledovanie výkonu.
  3. Kliknite pravým tlačidlom myši kdekoľvek v oblasti grafu
  4. vybrať vlastnosti
    Otvorte vlastnosti v PerfMone kliknutím pravým tlačidlom myši kdekoľvek v oblasti grafu.
  5. Kliknite na tlačidlo zdroj pútko
  6. vybrať Súbory denníka tlačítko na Rádiu
  7. kliknite pridať
  8. Prejdite do súboru denníka (.blg alebo .csv)
  9. Vyberte súbor a kliknite Otvorený
    Nastavte súbor denníka ako zdroj grafiky v PerfMone.
  10. Použi Časové rozpätie posuvníkom vyberte obdobie, ktoré chcete analyzovať
  11. kliknite OK zatvorte dialógové okno Vlastnosti
  12. Kliknite na zelenú ikonu plus a pridajte počítadlá zo súboru denníka
    Kliknite na zelenú ikonu plus a pridajte počítadlá zo súboru denníka v PerfMone.
  13. Vyberte požadované počítadlá, ktoré chcete zobraziť
    Pridajte požadované počítadlá do grafiky v PerfMone.
  14. kliknite OK

Graf teraz zobrazí historické údaje zo súboru denníka. Na zúženie konkrétnych časových období pre podrobnú analýzu použite posuvník Časový rozsah v časti Vlastnosti.

6.2 Export údajov do Excelu

Excel poskytuje výkonné analytické možnosti pre údaje počítadiel výkonu:

  1. Otvorte Monitor výkonu s načítaným súborom denníka
  2. Kliknite pravým tlačidlom myši kdekoľvek v oblasti grafu
  3. vybrať Uložiť údaje ako
  4. Vyberte umiestnenie pre súbor
  5. vybrať Textový súbor (oddelený čiarkou) (.csv) z rozbaľovacej ponuky
  6. kliknite ušetríte
  7. Otvorte súbor CSV v Exceli

Exportujte dáta do súboru v PerfMone.

Pre lepšiu analýzu naformátujte exportované údaje:

  1. Odstráňte poloprázdny riadok 2 a vymažte bunku A1
  2. Formátovať stĺpec A ako dátum/čas
  3. Formátovať číselné stĺpce s nulovými desatinnými miestami a oddeľovačom tisícok
  4. Vyhľadanie a nahradenie názvov serverov v hlavičkách (napr. nahradenie „\\NÁZOVSERVERA“ prázdnym textom)
  5. Vyčistite názvy objektov v hlavičkách (napr. „Pamäť“, „Fyzický disk“, „Procesor“)
  6. Pre lepšiu viditeľnosť zmenšite písmo hlavičky na 8 bodov

6.3 Interpretácia hodnôt počítadla

6.3.1 Analýza počítadla pamäte

Pri analýze počítadiel pamäte hľadajte tieto indikátory:

  • Dostupné MB: Malo by zostať trvalo nad 4096 MB
  • Životnosť stránky: Hodnoty nad 300 sekúnd naznačujú zdravú pamäť. Nižšie hodnoty naznačujú zaťaženie pamäte.
  • Pomer zásahov do vyrovnávacej pamäte: Malo by dosiahnuť alebo prekročiť 99 %. Nižšie hodnoty naznačujú nadmerné čítanie disku
  • Čakajúce na schválenie pamäťových grantov: Vždy by mala byť 0. Akákoľvek kladná hodnota označuje pamäťtardovolenka

6.3.2 Analýza počítadla CPU

Medzi ukazovatele výkonu CPU patria:

  • % Čas procesora: Dlhodobé používanie nad 75 % naznačuje problémy s výkonom. Výkyvy na 100 % sú normálne, ale nemali by pretrvávať.
  • Dĺžka frontu procesora: Hodnoty nad 1 označujú zaťaženie CPU. Skontrolujte Správcu úloh a zistite, ktoré procesy využívajú CPU.
  • % privilegovaného času: Malo by zostať medzi 5 – 10 %. Hodnoty nad 25 % naznačujú nadmerný počet I/O operácií.

6.3.3 Analýza počítadla diskov

Prahové hodnoty výkonu disku:

  • Priemerný čas na disku (sekundy)/čítanie a zápis: Malo by zostať pod 10 – 20 ms. Vyššie hodnoty naznačujú pomalé diskové subsystémy.
  • Dĺžka frontu na disku: Hodnoty trvalo nad 2 (alebo 2 na disk v RAID) naznačujú úzke miesta I/O
  • % Čas na disku: Trvalé hodnoty nad 85 % naznačujú saturáciu disku

6.4 Používanie vzorcov a štatistiky

Pridajte štatistické vzorce do Excelu pre rýchlu analýzu:

  1. Vložte 7 prázdnych riadkov na začiatok tabuľky
  2. Pridajte štítky do stĺpca A: Priemer, Medián, Min, Max, Štandardná odchýlka
  3. Do bunky B2 zadajte: =AVERAGE(B9:B100) (upravte B100 na posledný riadok s údajmi)
  4. Do bunky B3 zadajte: =MEDIAN(B9:B100)
  5. Do bunky B4 zadajte: =MIN(B9:B100)
  6. Do bunky B5 zadajte: =MAX(B9:B100)
  7. Do bunky B6 zadajte: =STDEV(B9:B100)
  8. Skopírujte vzorce do všetkých stĺpcov počítadla
  9. Vyberte bunku B9 a stlačte klávesy Alt+W+F+Enter, čím zmrazíte tably.

Tieto štatistiky pomáhajú identifikovať trendy, odchýlky a normálne prevádzkové rozsahy pre každé počítadlo.

7. Nástroj na analýzu výkonu protokolov (PAL)

7.1 Úvod do PALu

Analýza výkonu pre protokoly (PAL) je bezplatný nástroj vyvinutý Clintom Huffmanom, ktorý analyzuje protokoly monitora výkonu a generuje HTML správy s analýzou prahových hodnôt. PAL porovnáva vaše údaje o výkone so známymi prahovými hodnotami a poskytuje podrobné odporúčania pre SQL Server optimalizácia výkonu.

Stiahnite si PAL z repozitára GitHub: https://github.com/clinthuffman/PAL Externý odkaz

7.2 Nastavenie PALu

Nainštalujte PAL podľa týchto krokov:

  1. Stiahnite si inštalačný súbor PAL z GitHubu
  2. Spustite inštalátor
  3. kliknite ďalšie na úvodnej obrazovke
  4. Skontrolujte a akceptujte inštalačný adresár
  5. kliknite ďalšie pokračovať
  6. kliknite inštalovať začať inštaláciu
  7. Počkajte na dokončenie inštalácie
  8. kliknite úprava

7.3 Spracovanie súborov denníka pomocou PAL

Analyzujte protokoly monitora výkonu pomocou protokolu PAL:

  1. Spustite PAL z Start menu alebo inštalačný adresár
  2. Kliknite na tlačidlo Záznam počítadla pútko
  3. kliknite prezerať vyberte súbor .blg
  4. Prejdite do súboru denníka Monitora výkonu
  5. kliknite Otvorený
  6. Kliknite na tlačidlo Súbor s prahovými hodnotami pútko
  7. Vyberte súbor s prahovou hodnotou z rozbaľovacej ponuky (napr. „SQL Server 2016 ")
  8. Kliknite na tlačidlo otázky pútko
  9. Odpovedzte na otázky týkajúce sa konfigurácie vášho systému
  10. Uveďte, či vaše SQL Server je OLTP alebo dátový sklad
  11. Zadajte celkovú dostupnú RAM
  12. Kliknite na tlačidlo Možnosti výstupu pútko
  13. Vyberte výstupný adresár pre HTML správu
  14. Kontrola HTML výstupný formát
  15. Kliknite na tlačidlo Vykonať pútko
  16. Skontrolujte si svoj výber
  17. Kontrola Start poprava teraz
  18. kliknite úprava

7.4 Analýza správ PAL

Po dokončení analýzy PAL vygeneruje HTML správu obsahujúcu:

  • Zhrnutie problémov s výkonnosťou
  • Podrobná analýza počítadla s grafmi
  • Porušenia prahových hodnôt sú zvýraznené farebne
  • Konkrétne odporúčania pre každý problém
  • Historické trendy a vzory

Správa používa farebné kódovanie na označenie závažnosti: červená pre kritické problémy, žltá pre upozornenia a zelená pre zdravé metriky. Prečítajte si každú časť, aby ste pochopili úzke miesta vo výkone a riadili sa odporúčaniami PAL pre optimalizáciu.

8. Alternatíva SQL Server Monitorovacie nástroje

8.1 Vstavaný SQL Server náradie

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor zobrazuje informácie v reálnom čase o SQL Server procesy a výkon:

  1. Otvorený SQL Server Management Studio (SSMS) a pripojenie k inštancii servera
  2. Kliknite pravým tlačidlom myši na názov servera v Prieskumníkovi objektov
  3. vybrať Activity Monitor
    StarMonitor aktivity v SQL Server Štúdio manažmentu.

Monitor aktivity zobrazuje procesy, čakanie na zdroje, vstupno-výstupné operácie s dátovými súbormi a nedávne náročné dotazy. Poskytuje rýchly prehľad o aktuálnej aktivite databázy, ale neukladá historické údaje.

Monitor aktivity v SQL Server

8.1.2 SQL Server Panel výkonu

SQL Server Management Studio obsahuje vstavané prehľady výkonnosti:

  1. In SQL Server Management Studio (SSMS), kliknite pravým tlačidlom myši na SQL Server inštancia v Prieskumníkovi objektov
  2. vybrať Správy -> Štandardné správy
  3. Vyberte si z dostupných prehľadov, ako napríklad Panel výkonu
    Otvoriť panel výkonnosti v SQL Server Štúdio manažmentu.

Panel výkonnosti poskytuje vizuálny prehľad o SQL Server výkon inštancie vrátane využitia CPU systému, aktuálnych čakajúcich požiadaviek a metrík výkonu. Prístup k nim je možný prostredníctvom ponuky Štandardné prehľady.

Dashboard výkonnosti v SQL Server Štúdio manažmentu

8.1.3 SQL Server Profiler

SQL Server Profiler zachytáva a analyzuje SQL Server udalosti, ako napríklad vykonávanie dotazov, transakčné operácie a prihlasovacie aktivity.

K start SQL Server profilovač:

  1. In SQL Server Management Studio, kliknite náradie -> SQL Server Profiler
    Start SQL Server Profiler v SQL Server Štúdio manažmentu.

Profiler vytvára značné výkonnostné réžie, preto ho používajte rozumne a najlepšie mimo špičky. Pre most scenáre, Rozšírené udalosti poskytujú lepší výkon s menším dopadom.

SQL Server Profiler

8.1.4 Rozšírené udalosti

Rozšírené udalosti je ľahký systém monitorovania výkonu zabudovaný do SQL Server. Nahrádza SQL Server Profiler s lepším výkonom a nižšími réžijnými nákladmi.

Kľúčové vlastnosti patrí:

  • Podrobné monitorovanie špecifických udalostí
  • Minimálny vplyv na výkon
  • Prispôsobiteľné relácie udalostí
  • Integrácia so SSMS a ďalšími nástrojmi
  • Podpora komplexného filtrovania a agregácie

Vytvorenie relácií rozšírených udalostí prostredníctvom SSMS:

  1. In Prieskumník objektov, rozšírte svoj server a prejdite na Správa -> Rozšírené udalosti -> Relácie
  2. Kliknite pravým tlačidlom myši na ikonu Sessions A vyberte Sprievodca novou reláciou
    Starnová relácia rozšírených udalostí v SQL Server Štúdio manažmentu.
  3. Postupujte podľa pokynovtarnovú reláciu.

8.1.5 Dynamické zobrazenia správy (DMV)

DMV zobrazujú podrobné informácie o stave servera na monitorovanie jeho stavu, diagnostiku problémov a ladenie výkonu. Medzi kľúčové DMV patria:

  • sys.dm_exec_query_stats: Štatistiky výkonnosti dotazov
  • sys.dm_os_wait_stats: Typy čakania ovplyvňujúce výkon servera
  • sys.dm_os_performance_counters: SQL Server údaje počítadla výkonu
  • sys.dm_exec_requests: Momentálne sa vykonávajú požiadavky
  • sys.dm_exec_sessions: Aktívne používateľské relácie

Dotazujte tieto zobrazenia pomocou T-SQL, aby ste získali prístup k údajom o výkonnosti v reálnom čase a historickým metrikám.

Základné použitie

-- 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 Riešenia monitorovania tretích strán

Redgate SQL Monitor

Redgate SQL Monitor sa špecializuje na monitorovanie SQL Server a prostredia databázy Azure SQL. Poskytuje monitorovanie celého majetku, prispôsobiteľné upozornenia a dashboardy, podrobné možnosti tvorby prehľadov a integráciu s ďalšími nástrojmi Redgate.

Redgate SQL Server monitor

SolarWinds SQL Server Monitorovací nástroj

SolarWinds SQL Server Monitorovací nástroj, tiež známy ako SQL Sentry, je navrhnutý na diagnostiku, riešenie a prevenciu závažných problémov s výkonom SQL Server.

SolarWinds SQL Server Monitorovací nástroj

IDERA SQL Server Nástroj na monitorovanie výkonu

IDERA SQL Diagnostic Manager je výkonný SQL Server nástroj na monitorovanie výkonu určený na pomoc s proaktívnym monitorovaním výkonu, diagostiky a ladenie.

IDERA SQL Server Nástroj na monitorovanie výkonu

SQL Monitoring manažéra aplikácií

Applications Manager ponúka Microsoft SQL Server Monitorovací nástroj, ktorý poskytuje užitočné IT riešenia. Je navrhnutý tak, aby dohliadal na výkon SQL databáz a súčasne identifikoval chyby a riešil problémy, ktoré by mohli viesť k zastaveniu prevádzky organizácie.

SQL Monitoring manažéra aplikácií

8.3 Nástroje na monitorovanie s otvoreným zdrojovým kódom

Dash pre správcov databáz

DBA Dash je bezplatný monitorovací nástroj s otvoreným zdrojovým kódom, ktorý poskytuje prehľad o SQL Server stav, výkon a aktivita. Je obzvlášť užitočný pre malé až stredne veľké prostredia a zahŕňa denné kontroly databázy, monitorovanie výkonu a sledovanie konfigurácie.

SQLWATCH

SQLWATCH ponúka decentralizované spracovanie takmer v reálnom čase SQL Server monitorovanie s 5-sekundovou granularitou na zachytenie špičiek pracovnej záťaže. Podporuje Grafanu pre dashboardy v reálnom čase a Power BI pre hĺbkovú analýzu. Nástroj poskytuje rozsiahle možnosti konfigurácie, nulové požiadavky na údržbu a neobmedzenú škálovateľnosť.

Observer

Vyvinutý spoločnosťou Stack Exchange, Opserver monitoruje viacero systémov vrátane SQL Server, Redis a Elasticsearch. Poskytuje zobrazenie „všetkých serverov“ pre štatistiky CPU, pamäte, siete a hardvéru v rámci vašej infraštruktúry.

sp_Kto je aktívny

sp_WhoIsActive je komplexná uložená procedúra na monitorovanie aktivít, ktorú vytvoril Adam Machanic. Funguje so všetkými SQL Server verzie od roku 2005 až po aktuálne vydania a je široko používaný SQL Server DBA pre monitorovanie aktivít v reálnom čase.

Ak chcete použiť sp_WhoIsActive, stiahnite si ho z webovej stránky http://whoisactive.com/, nainštalujte ho do databázy a spustite:

EXEC sp_WhoIsActive

Procedúra zobrazuje aktuálne vykonávané dotazy, informácie o čakaní, podrobnosti o blokovaní a spotrebu zdrojov.

9. Najlepšie postupy pre SQL Server sledovanie výkonu

9.1 Stanovenie východiskových hodnôt výkonnosti

Základné hodnoty výkonu stanovujú bežné prevádzkové parametre pre vaše SQL Server prostredie. Bez východiskových hodnôt nie je možné určiť, či aktuálne metriky naznačujú problémy alebo predstavujú typické správanie.

Vytvorte základné línie podľa:

  1. Zber údajov o výkonnosti počas bežnej prevádzky po dobu najmenej jedného týždňa
  2. Zaznamenávanie metrík počas špičky aj mimo špičky
  3. Dokumentovanie typických hodnôt pre počítadlá kľúčov
  4. Zaznamenávanie sezónnych výkyvov, ak je to relevantnécable
  5. Ukladanie základných údajov na porovnanie s budúcimi metrikami

Aktualizujte základné hodnoty štvrťročne alebo po významných zmenách infraštruktúry, aktualizáciách aplikácií alebo úpravách databázy.

9.2 Nastavenie vhodných prahových hodnôt upozornení

Nakonfigurujte inteligentné prahové hodnoty, aby ste dostávali zmysluplné upozornenia bez toho, aby ste sa nimi zahlcovali:

  • Čakajúce granty pamäte > 0 označuje zaťaženie pamäte
  • Dĺžka frontu procesora > 2 na jadro naznačuje úzke hrdlo CPU
  • Čas disku v sekundách/čítanie alebo zápis > 20 ms označuje pomalý vstup/výstup
  • Blokované procesy > 5 signálov problémov so súperením
  • Predpokladaná životnosť stránky < 300 sekúnd naznačuje zaťaženie pamäte

Upravte prahové hodnoty na základe vašich základných údajov a špecifických charakteristík pracovnej záťaže. Používajte adaptívne prahové hodnoty, ktoré zohľadňujú bežné zmeny vo vašom prostredí.

9.3 Pravidelná kontrola a analýza údajov

Naplánujte si pravidelné kontroly výkonnosti s cieľom identifikovať trendy a vznikajúce problémy:

  • Denne: Kontrola hlavných metrík a nedávnych upozornení
  • Týždenne: Vykonávajte hĺbkovú analýzu trendov výkonnosti
  • Mesačne: Generovanie komplexných správ a porovnávanie s východiskovými hodnotami
  • Štvrťročne: Prehodnotenie plánovania kapacity a dlhodobých trendov

Dokumentujte zistenia a sledujte zlepšovanie výkonnosti v priebehu času.

9.4 Vyvažovanie monitorovacích réžií

Samotné monitorovanie spotrebúva zdroje, preto hľadajte rovnováhu medzi zhromažďovaním údajov a vplyvom na výkon:

  • Pre nepretržité monitorovanie používajte 30-60 sekundové intervaly
  • Na aktívne riešenie problémov používajte iba 15-sekundové intervaly
  • Obmedzenie trvania súboru zberačov údajov, aby sa predišlo nadmernému objemu údajov
  • Ukladajte protokoly na oddelené disky od databázových súborov
  • Archivujte staré údaje o výkone, aby ste zachovali zvládnuteľnú veľkosť súborov

Monitor výkonu pri správnej konfigurácii pridáva minimálnu réžiu, zvyčajne menej ako 2 % systémových prostriedkov.

9.5 Dlhodobé uchovávanie údajov

Uchovávajte údaje o výkonnosti pre zmysluplnú analýzu trendov a plánovanie kapacity:

  • Uchovávajte údaje o výkonnosti za aspoň 1 – 2 roky
  • Archivujte údaje do samostatného úložiska po 3 – 6 mesiacoch
  • Komprimujte staršie súbory denníka, aby ste ušetrili miesto
  • Zdokumentujte všetky významné udalosti alebo zmeny, ktoré ovplyvňujú výkonnosť

Vzhľadom na relatívne malú veľkosť údajov z počítadiel výkonu je ich uchovávanie na dobu neurčitú často uskutočniteľné a cenné pre dlhodobú analýzu.

9.6 Integrácia s postupmi DevOps

Začlenenie monitorovania výkonu databázy do kanálov CI/CD:

  • Zahrnutie metrík výkonu databázy do overovania nasadenia
  • Automatizujte testovanie výkonu pre nové vydania
  • Overte, či zmeny kódu nemajú negatívny vplyv na výkon
  • Vytvorte výkonnostné benchmarky pre každé vydanie
  • Integrácia monitorovacích upozornení so systémami riadenia incidentov

10. Riešenie bežných problémov s výkonom

10.1 Identifikácia úzkych miest CPU

Úzke miesta s procesorom sa prejavujú ako pomalé časy odozvy na dotazy a vysoké využitie procesora. Na diagnostiku problémov s procesorom použite tieto kroky:

  1. Skontrolujte počítadlo dĺžky frontu procesora. Hodnoty nad 2 na jadro naznačujú zaťaženie procesora.
  2. Skontrolujte percentuálny čas procesora. Trvalé hodnoty nad 75 % naznačujú úzke hrdlo CPU.
  3. Vzdialená pracovná plocha k SQL Server
  4. Otvoriť Správcu úloh (Ctrl+Shift+Esc)
  5. Kliknite na tlačidlo procesy pútko
  6. Kontrola Zobraziť procesy od všetkých používateľov
  7. Kliknite na tlačidlo CPU hlavička stĺpca na zoradenie podľa využitia CPU
  8. Identifikujte, ktoré procesy spotrebúvajú zdroje CPU

Ak nieSQL Server Ak aplikácie spotrebúvajú značné množstvo CPU, odstráňte ich z databázového servera. Ak sqlservr.exe využíva veľa CPU, preskúmajte to pomocou týchto metód:

  • Skontrolujte počet kompilácií SQL/s a počet rekompilácií SQL/s. Hodnoty nad 10 % počtu dávkových požiadaviek/s naznačujú nadmernú kompiláciu.
  • Dotaz sys.dm_exec_query_stats na identifikáciu dotazov náročných na procesor
  • Skontrolujte plány vykonávania, či neobsahujú chýbajúce indexy alebo neefektívne operácie
  • Zvážte pridanie indexov na zníženie počtu prehľadávaní tabuliek

10.2 Diagnostika problémov s pamäťou

Problémy s pamäťou majú významný vplyv SQL Server výkon. Diagnostikujte problémy s pamäťou pomocou týchto indikátorov:

Dostupné pamäťové kvapky

Ak počet dostupných MB trvalo klesá pod 100 MB, operačný systém čelí nedostatku pamäte.tarvácia. Systém Windows môže vynechať stránku SQL Server pamäte na disk, čo spôsobuje zníženie výkonu.

Nízka očakávaná životnosť stránky

Predpokladaná životnosť stránky pod 300 sekúnd naznačuje vysokú mieru obratu vyrovnávacej pamäte. To naznačuje buď nedostatočnú alokáciu pamäte, alebo nadmerný tlak na pamäť zo strany dotazov.

Nízky pomer zásahov do vyrovnávacej pamäte

Pomer úspešnosti vyrovnávacej pamäte pod 99 % znamená SQL Server často číta dáta z disku namiesto z pamäte. K tomu dochádza, keď je vyrovnávacia pamäť príliš malá alebo SQL Server sa stále zahrieva po resetart.

Čakajúce granty na pamäť

Akákoľvek hodnota nad 0 pre Čakajúce granty pamäte znamená, že dotazy čakajú na granty pamäte. To predstavuje kritický nedostatok pamäte, ktorý si vyžaduje okamžitú pozornosť.

Riešenie problémov s pamäťou:

  1. Konfigurácia SQL Server maximálne nastavenie pamäte, aby sa ponechala dostatočná pamäť RAM pre operačný systém (zvyčajne 4 – 8 GB v závislosti od veľkosti servera)
  2. Povoliť povolenie „Uzamknúť stránky v pamäti“ pre SQL Server servisný účet
  3. Ak pretrváva tlak na pamäť, pridajte na server viac fyzickej pamäte RAM.
  4. Identifikujte a optimalizujte dotazy náročné na pamäť

10.3 Riešenie problémov s diskovými vstupno-výstupnými operáciami

Diskové vstupno-výstupné operácie sa často stávajú hlavným problémom výkonu v databázových systémoch. Diagnostikujte problémy s diskom pomocou týchto metód:

Vysoká dĺžka frontu disku

Ak je dĺžka frontu disku trvalo vyššia ako 2 (alebo 2 na disk pre RAID), znamená to, že diskový subsystém nedokáže spracovať požiadavky na vstup/výstup. To vytvára hromadu čakajúcich operácií.

Nadmerná latencia disku

Hodnoty priem. času na disku (s/čítanie) a priem. času na disku (s/zápis) nad 10 – 20 ms naznačujú pomalú odozvu disku. Jednotky protokolov transakcií vyžadujú obzvlášť rýchly výkon, ideálne pod 5 ms pre zápis.

Vysoké percento času na disku

Trvalé percento času na disku nad 85 % indikuje saturáciu disku. Disk strávi most spracovanie I/O požiadaviek s malou zostávajúcou nečinnou kapacitou.

Pred riešením problémov s diskom overte, či nejde o príznaky problémov s pamäťou. Nedostatočná pamäť vynúti SQL Server načítať viac údajov z disku, čím sa umelo nafukujú metriky disku.

Riešenie problémov s I/O na pravých diskoch:

  • Prejdite na rýchlejšie disky (SSD namiesto HDD)
  • Implementujte konfigurácie RAID pre lepší výkon
  • Oddelené databázové súbory, transakčné protokoly a dočasnú databázu (dočasnú databázu) na rôznych fyzických diskoch
  • Pridajte viac pamäte na zníženie počtu čítaní z disku
  • Optimalizujte indexy na zníženie nepotrebného I/O
  • Skontrolujte a optimalizujte dotazy s nízkym výkonom

10.4 Riešenie blokovania a uviaznutí

K blokovaniu dochádza, keď jedna relácia obsahuje zámky, ktoré bránia pokračovaniu iných relácií. Monitorujte tieto počítadlá, aby ste identifikovali problémy s blokovaním:

  • Blokované procesy: Ideálne by malo byť 0
  • Čas čakania na uzamknutie/s: Počet žiadostí o uzamknutie vyžadujúcich čakanie
  • Priemerná doba čakania: Priemerná doba čakania na uzamknutie

Preskúmanie blokovania:

  1. Otvorte Monitor aktivity v SSMS
  2. rozbaľte procesy časť
  3. Hľadajte procesy s nenulovou hodnotou Zablokované používateľom hodnoty
  4. Identifikujte ID blokujúcej relácie
  5. Skontrolujte dopyty spôsobujúce blokovanie

Na podrobnejšiu analýzu blokovania použite sp_WhoIsActive. Nadmerný počet položiek wait_info často naznačuje problémy s konfliktmi v databáze tempdb alebo s blokovaním.

Na zníženie blokovania:

  • Minimalizujte trvanie transakcie
  • Používajte vhodné úrovne izolácie
  • Pridajte indexy na skrátenie trvania uzamknutia
  • Zvážte izoláciu READ_COMMITTED_SNAPSHOT
  • Kontrola a optimalizácia dlhotrvajúcich dotazov

10.5 Problémy s výkonom dotazov

Identifikácia náročných dotazov je nevyhnutná pre monitorovanie výkonu SQL. Na nájdenie problematických dotazov použite tieto metódy:

Používanie Monitora aktivity

  1. V systéme SSMS kliknite pravým tlačidlom myši na názov servera.
  2. vybrať Activity Monitor
  3. Rozšíriť Nedávne drahé dopyty
  4. Kontrolné dotazy s vysokou záťažou CPU, trvaním alebo logickými čítaniami

Používanie DMV

Dotaz sys.dm_exec_query_stats na identifikáciu dotazov náročných na zdroje:

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

Analýza realizačných plánov

  1. V SSMS otvorte nové okno dotazu
  2. kliknite Zobraziť odhadovaný plán realizácie (Ctrl+L) alebo Zahrnúť skutočný plán realizácie (Ctrl+M)
  3. Vykonajte svoj dopyt
  4. Preskúmajte plán realizácie nákladných operácií
  5. Hľadajte skenovanie tabuliek, skenovanie indexov alebo high-cost operácie

Optimalizujte dopyty podľa:

  • Pridanie vhodných indexov
  • Prepisovanie dotazov s cieľom vyhnúť sa nákladným operáciám
  • Aktualizácia štatistík
  • Použitie konkrétnych názvov stĺpcov namiesto SELECT *
  • Vyhýbanie sa zbytočným klauzulám DISTINCT alebo ORDER BY

10.6 Detekcia a oprava poškodenej databázy

Poškodenie databázy môže spôsobiť zníženie výkonu, stratu údajov a zlyhania systému. Rýchle odhalenie a riešenie poškodenia je kľúčové pre udržanie zdravia databázy.

Indikátory poškodenia databázy

Dávajte si pozor na tieto príznaky možnej korupcie:

  • Chybové hlásenia v SQL Server protokol chýb (chyba 823, 824 alebo 825)
  • Neočakávané chyby aplikácie pri prístupe k konkrétnym tabuľkám
  • Pomalý výkon dotazov pri predtým rýchlych dotazoch
  • SQL Server pády alebo neočakávané riešeniatarts
  • Podozrivé stránky sa zobrazujú v tabuľke msdb.dbo.suspect_pages

Použitie DBCC CHECKDB na detekciu

DBCC CHECKDB je hlavným nástrojom na detekciu poškodenia databázy. Pravidelne ho spúšťajte, aby ste problémy odhalili včas.

Monitorovanie podozrivých stránok

SQL Server automaticky zaznamenáva podozrivé stránky do databázy msdb:

SELECT 
    database_id,
    file_id,
    page_id,
    event_type,
    error_count,
    last_update_date
FROM msdb.dbo.suspect_pages
WHERE event_type IN (1,2,3)

Všetky vrátené riadky naznačujú problémy s poškodením, ktoré si vyžadujú okamžitú pozornosť.

Stratégie predchádzania korupcii

  • Povoliť overenie stránky pomocou možnosti CHECKSUM
  • Pravidelne udržiavajte zálohy databázy
  • Používajte spoľahlivý hardvér s korekciou chýb
  • Monitorovanie stavu disku pomocou nástrojov výrobcu
  • Naplánovať pravidelné spustenia DBCC CHECKDB
  • Udržať SQL Server aktualizované s najnovšími záplatami

Možnosti obnovy a opravy

Ak sa zistia chyby, môžete vyskúšať vstavaný nástroj DBCC CHECKDB na ich opravu. Ak to zlyhá, použite nástroje tretích strán, ako napríklad DataNumen SQL Recovery ktorý si dokáže poradiť s vážnou korupciou.

11. Pokročilé monitorovacie techniky

11.1 Monitorovanie úložiska dotazov

Úložisko dotazov, predstavené v SQL Server 2016 automaticky zaznamenáva údaje o výkonnosti dotazov. Poskytuje cenné informácie o správaní dotazov, plánoch vykonávania a trendoch výkonnosti.

Povolenie úložiska dotazov

  1. V Prieskumníkovi objektov SSMS kliknite pravým tlačidlom myši na databázu
  2. vybrať vlastnosti
  3. Kliknite na tlačidlo Dotazový obchod strana
  4. In Prevádzkový režim (požadovaný)vyberte Čítaj píš
  5. Podľa potreby nakonfigurujte ďalšie nastavenia
  6. kliknite OK

Monitorovanie výkonu dotazov

Prístup k zostavám úložiska dotazov prostredníctvom Prieskumníka objektov:

  1. Rozšírenie databázy v Prieskumníkovi objektov
  2. Rozšíriť Dotazový obchod
  3. Vyberte si z dostupných prehľadov:
    • Regresné dotazy
    • Celková spotreba zdrojov
    • Najčastejšie dotazy spotrebúvajúce zdroje
    • Dotazy s vynútenými plánmi
    • Sledované dopyty

Detekcia regresie plánu

Úložisko dotazov automaticky zistí, kedy sa zmenia plány vykonávania dotazov a zníži sa výkon. Pozrite si prehľad Regresné dotazy a identifikujte dotazy ovplyvnené zmenami plánu.

Správa núteného plánu

Keď Query Store identifikuje lepší plán vykonávania, vynúti SQL Server použiť ho:

  1. Otvorte dotaz v úložisku dotazov
  2. Kliknite pravým tlačidlom myši na požadovaný plán
  3. vybrať Plán síl

Toto okamžite zlepšuje výkon bez nutnosti zmien kódu.

11.2 Monitorovanie údržby indexov

Fragmentácia indexov časom znižuje výkon dotazov. Pravidelne monitorujte a udržiavajte indexy, aby ste zabezpečili optimálny výkon.

Kontrola fragmentácie

Na kontrolu fragmentácie indexu použite tento dotaz:

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

Tento dotaz spustite mimo špičky, pretože môže byť náročný na zdroje.

Analýza hustoty stránok

Hustota stránok udáva, ako plné sú indexové stránky. Nízka hustota plytvá miestom a znižuje výkon:

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

Rozhodnutia o reorganizácii vs. prestavbe

Vyberte operácie údržby indexu na základe úrovne fragmentácie:

  • Fragmentácia 10 – 30 %: Použite ALTER INDEX REORGANIZE
  • Fragmentácia > 30 %: Použite ALTER INDEX REBUILD
  • Fragmentácia < 10 %: Nie je potrebné podniknúť žiadne kroky

Reorganizačné operácie vyžadujú menej zdrojov a môžu prebiehať online. Operácie obnovy sú dôkladnejšie, ale spotrebúvajú značné množstvo zdrojov.

11.3 Aktualizácie štatistík databázy

Pomoc so štatistikami databázy SQL ServerOptimalizátor dotazov vytvára efektívne plány vykonávania. Zastarané štatistiky vedú k nízkemu výkonu dotazov.

Automatická obnova štatistík

Povoliť automatické aktualizácie štatistík:

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

Monitorovanie štatistík Zdravie

Skontrolujte, kedy boli štatistiky naposledy aktualizované:

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

Manuálna aktualizácia štatistík podľa potreby:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Zhromažďovanie vlastných údajov o výkonnosti

Vytvorte si vlastné riešenia monitorovania výkonu priamym dotazovaním sys.dm_os_performance_counters a uložením výsledkov do tabuliek.

Vytváranie vlastných skriptov kolekcií

Vytvorte uloženú procedúru na zhromažďovanie údajov z počítadla výkonu:

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

Používanie sys.dm_os_performance_counters

Priame dotazovanie počítadiel výkonu:

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

Ukladanie historických údajov

Vytvorte tabuľku na ukladanie metrík výkonnosti v priebehu času:

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

Metódy pivotného ukladania údajov

Ukladajte dáta v pivotovom formáte s jedným riadkom na čas vzorkovania a jedným stĺpcom na počítadlo. To znižuje úložný priestor a zlepšuje výkon dotazov v porovnaní s uložením jedného riadku na počítadlo na vzorku.

11.5 Monitorovanie viacerých serverov

Pre prostredia s viacerými SQL Server v niektorých prípadoch implementujte centralizované monitorovanie.

Centralizovaný prístup k monitorovaniu

  • Vytvorte si vyhradenú monitorovaciu databázu na samostatnom serveri
  • Zbierajte dáta zo všetkých serverov do centrálneho úložiska
  • Použitie SQL Server Úlohy agenta na spúšťanie zhromažďovacích skriptov
  • Implementácia zhromažďovania počítadiel výkonu prístupných zo siete

Vzdialené monitorovanie servera

Nakonfigurujte Monitor výkonu na zhromažďovanie údajov zo vzdialených serverov zadaním názvov serverov pri pridávaní počítadiel. Uistite sa, že pravidlá brány firewall povoľujú prevádzku Monitora výkonu.

Prehľady medzi servermi

Vytvárajte správy, ktoré porovnávajú výkon viacerých serverov s cieľom identifikovať odchýlky a nerovnováhy kapacity.

12. monitoring SQL Server v cloudových prostrediach

12.1 Monitorovanie databázy Azure SQL

Databáza Azure SQL poskytuje vstavané možnosti monitorovania, ktoré sa líšia od lokálnych riešení. SQL Server.

Integrácia Azure Monitora

Azure Monitor automaticky zhromažďuje metriky z databázy Azure SQL vrátane:

  • Využitie DTU alebo vCore
  • Skladovanie použitie
  • Štatistiky pripojenia
  • Zablokovania a časové limity

Prístup k týmto metrikám získate prostredníctvom rozhrania Azure Portal alebo Azure Monitor API.

Vstavané monitorovacie funkcie

Databáza Azure SQL obsahuje:

  • Odporúčania automatického ladenia
  • Prehľad výkonu dotazov
  • Inteligentné prehľady pre detekciu anomálií
  • Vstavané upozornenia a diagnostikaostics

Prehľad výkonu dotazov

Táto funkcia poskytuje vizualizáciu najnáročnejších dotazov, analýzu trvania dotazov a historické trendy výkonu. Prístup k nej získate prostredníctvom portálu Azure Portal v rámci vášho zdroja databázy SQL.

12.2 Cloudové natívne monitorovacie nástroje

Cloudové platformy ponúkajú natívne monitorovacie riešenia optimalizované pre ich prostredia:

  • Azure Monitor a Application Insights pre databázu Azure SQL
  • AWS CloudWatch pre RDS SQL Server
  • Monitorovanie cloudu Google pre cloud SQL Server

Tieto nástroje sa bezproblémovo integrujú s cloudovou infraštruktúrou a poskytujú jednotné monitorovanie všetkých cloudových zdrojov.

Monitorovanie hybridného prostredia

Pre hybridné nasadenia zahŕňajúce lokálne aj cloudové riešenia použite nástroje, ktoré podporujú obe prostredia, ako napríklad Redgate SQL Monitor, SolarWinds DPA alebo vlastné riešenia využívajúce centralizovaný zber údajov.

12.3 Rozdiely vo výkone v cloude

mrak SQL Server prostredia majú jedinečné vlastnosti:

Modely alokácie zdrojov

Poskytovatelia cloudových služieb používajú rôzne metódy alokácie zdrojov (DTU, vCores, bezserverové riešenia), ktoré ovplyvňujú spôsob interpretácie metrík výkonu. Pochopte obmedzenia a charakteristiky vašej úrovne služieb.

Úvahy o mierke

Cloudové prostredia ponúkajú možnosti dynamického škálovania. Monitorujte využitie zdrojov, aby ste určili, kedy je potrebné škálovať nahor alebo nadol. Mnohé cloudové platformy poskytujú automatické škálovanie na základe prahových hodnôt výkonu.

13. Automatizácia monitorovania výkonu

13.1 SQL Server Pracovné miesta agentov

Automatizujte zber údajov pomocou SQL Server Úlohy agentov pre konzistentné monitorovanie bez manuálneho zásahu.

Plánovaný zber údajov

  1. V systéme SSMS rozbaľte SQL Server Činidlo
  2. Kliknite pravým tlačidlom myši jobs a zvoľte Nová práca
  3. Pomenujte úlohu (napr. „Zhromažďovanie metrík výkonnosti“)
  4. kliknite Kroky a pridajte nový krok
  5. Nastaviť typ na Skript Transact-SQL
  6. Zadajte skript zberu údajov
  7. kliknite Cestovné poriadky a pridajte rozvrh
  8. Nakonfigurujte frekvenciu (napr. každých 5 minút)
  9. kliknite OK vytvoriť pracovnú pozíciu

Automatizovaný reporting

Vytvorte úlohy, ktoré generujú a posielajú správy o výkonnosti e-mailom:

  1. Vytvorte uloženú procedúru, ktorá generuje zostavy
  2. Používanie databázovej pošty na odosielanie správ e-mailom
  3. Naplánujte úlohu na denné alebo týždenné spúšťanie

13.2 Automatizácia PowerShellu

PowerShell poskytuje výkonné možnosti automatizácie pre SQL Server monitor výkonu.

Skripty zhromažďovania počítadiel výkonu

$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

Dotazy WMI

Na zhromažďovanie údajov o výkone zo vzdialených serverov použite WMI:

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

Automatické upozornenia

Vytvorte skripty PowerShellu, ktoré kontrolujú metriky a odosielajú upozornenia pri prekročení prahových hodnôt:

$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 Vytváranie monitorovacích dashboardov

Vizualizujte údaje o výkonnosti pomocou interaktívnych dashboardov pre lepší prehľad.

Integrácia Power BI

  1. Prepojenie služby Power BI s tabuľkami údajov o výkonnosti
  2. Vytvárajte vizualizácie pre kľúčové metriky
  3. Pridajte filtre pre časový rozsah a výber servera
  4. Publikovanie dashboardov do služby Power BI
  5. Konfigurácia automatických plánov obnovenia

Vytvorenie dashboardu v reálnom čase

Na vytvorenie dashboardov v reálnom čase, ktoré priamo dotazujú DMV a počítadlá výkonu, použite nástroje ako Grafana alebo vlastné webové aplikácie.

Vizualizácia historických trendov

Vytvorte čiarové grafy zobrazujúce trendy v priebehu času pre:

  • Využitie procesora
  • Využitie pamäte
  • Disk I/O
  • Výkon dotazu
  • Počet pripojení

14. Prípadové štúdie a praktické príklady

14.1 Prípadová štúdia: Riešenie tlaku na pamäť

Identifikácia symptómov

Produkcia SQL Server počas špičky zaznamenal pomalé časy odozvy na dotazy. Používatelia sa sťažovali na časové limity aplikácií a znížený výkon.

Protianalýza

Údaje z Performance Monitoru odhalené:

  • Predpokladaná životnosť stránky klesla na 50 sekúnd (normálna: >300)
  • Pomer úspešnosti vyrovnávacej pamäte klesol na 85 % (normálna hodnota: > 99 %)
  • Čakajúce na udelenie pamäte často zobrazovali hodnoty 5 – 10.
  • Počet čítaní z fyzického disku za sekundu výrazne vzrástol

Kroky rozlíšenia

  1. kontrolované SQL Server maximálne nastavenie pamäte – zistil som, že je nastavené na predvolenú hodnotu (neobmedzené)
  2. Porovnanie celkovej pamäte servera vs. Tarzískať pamäť servera – vykazovala značnú medzeru
  3. Maximálna pamäť servera bola nakonfigurovaná tak, aby pre operačný systém zostalo 8 GB.
  4. Povolené povolenie „Uzamknúť stránky v pamäti“ pre SQL Server servisný účet
  5. Na server pridaných 32 GB RAM
  6. Monitorovaný výkon počas jedného týždňa – očakávaná životnosť stránky sa stabilizovala nad 500 sekúnd

Výsledok: Časy odozvy na dotazy sa zlepšili o 60 %, sťažnosti používateľov ustali a výkon aplikácie sa vrátil do normálu.

14.2 Prípadová štúdia: Optimalizácia výkonu CPU

Identifikácia symptómov

A SQL Server počas pracovnej doby neustále vykazoval využitie CPU nad 90 %, čo spôsobovalo pomalý výkon aplikácií a frustráciu používateľov.

Protianalýza

Monitorovanie výkonnosti odhalilo:

  • Priemerné percento času procesora bolo 92 % s častými nárastmi až do 100 %
  • Dĺžka frontu procesora bola trvalo vyššia ako 4 (server mal 8 jadier)
  • Počet kompilácií SQL/s bol 25 % z počtu dávkových požiadaviek/s (mal by byť < 10 %)
  • Rekompilácie SQL/s boli 15 % z dávkových požiadaviek/s

Kroky rozlíšenia

  1. Použité DMV na identifikáciu najnáročnejších dotazov na CPU
  2. Analyzované plány vykonávania pre identifikované dotazy
  3. Zistené viacnásobné skenovania tabuliek vo veľkých tabuľkách kvôli chýbajúcim indexom
  4. Vytvoril vhodné indexy na základe odporúčaní z plánu vykonávania
  5. Identifikované dynamické SQL kódy spôsobujúce nadmerné množstvo kompilácií
  6. Upravený kód aplikácie na použitie parametrizovaných dotazov
  7. Implementovaný plánovací sprievodca pre problematické uložené procedúry
  8. Aktualizované štatistiky o často používaných tabuľkách

Výsledok: Využitie CPU kleslo počas pracovnej doby na priemerných 45 %. Časy vykonávania dotazov sa skrátili o 70 %. Výrazne sa zlepšila aj odozva aplikácií.

14.3 Prípadová štúdia: Riešenie úzkych miest diskového vstupu/výstupu

Identifikácia symptómov

Používatelia hlásili extrémne pomalú odozvu aplikácie počas načítavania údajov a večerného dávkového spracovania.

Protianalýza

Údaje o výkonnosti ukázali:

  • Priemerný čas na disku v sekundách/zápis prekročil 45 ms na disku denníka transakcií
  • Priemerná dĺžka frontu na disku je 12 na disku s dátovými súbormi
  • Percento času na disku zostalo počas dávkových úloh nad 95 % po dobu niekoľkých hodín
  • Počet zápisov stránok/s bol mimoriadne vysoký

Kroky rozlíšenia

  1. Overené nastavenia pamäte boli správne – nezistili sa žiadne problémy s pamäťou
  2. Analyzovaná konfigurácia disku – nájdené všetky súbory na rovnakej sade vretena
  3. Oddelené protokoly transakcií na vyhradené rýchle SSD disky
  4. Presunutie tempdb na samostatné SSD disky
  5. Implementovaných viacero súborov s dočasnými databázami (jeden na jadro)
  6. Upgradované dátové disky na konfiguráciu SSD RAID 10
  7. Optimalizované dávkové úlohy na použitie menších dávok transakcií
  8. Pridané indexy na zníženie nepotrebného skenovania tabuliek počas dávkových operácií

Výsledok: Priemerný čas zápisu na disk (sekundy) klesol na 3 ms. Priemerná dĺžka frontu disku bola pod 1. Čas dokončenia dávkovej úlohy sa skrátil o 75 %.

15. Budúce trendy v SQL Server Monitorovanie

15.1 Integrácia AI a strojového učenia

Umelá inteligencia a strojové učenie sa transformujú SQL Server monitor výkonu.

Prediktívna analýza

Modely strojového učenia predpovedajú budúce potreby zdrojov na základe historických údajov. Tieto systémy dokážu predpovedať:

  • Kedy sa vyčerpá úložná kapacita
  • Očakávané požiadavky na CPU a pamäť počas špičky
  • Zníženie výkonu dotazov skôr, ako to ovplyvní používateľov
  • Optimálne časy pre údržbárske práce

Detekcia anomálií

Nástroje založené na umelej inteligencii automaticky zisťujú nezvyčajné vzorce v metrikách výkonnosti. Identifikujú anomálie, ktoré by ľudskí administrátori mohli prehliadnuť, a rozlišujú medzi bežnými odchýlkami a skutočnými problémami.

Automatická náprava

Samoopravné systémy automaticky riešia bežné problémy, keď sú zistené:

  • Restarslužby, ktoré boli zastavené
  • Prerozdeľovanie zdrojov počas špičkového zaťaženia
  • Použite rýchle opravy pre známe problémy
  • Automatické obnovenie fragmentovaných indexov

15.2 Vývoj cloudového monitorovania

Monitorovanie cloudu sa neustále vyvíja s novými možnosťami.

Jednotné monitorovacie platformy

Moderné platformy poskytujú výhľad cez jedno sklo na:

  • Miestne SQL Server inštancie
  • Cloud-hosted databázy
  • Hybridné prostredia
  • Výkon aplikácie
  • Metriky infraštruktúry

Trendy pozorovateľnosti

Prechod od monitorovania k pozorovateľnosti zdôrazňuje:

  • Pochopenie správania systému z výstupov
  • Korelácia metrík, protokolov a sledovaní
  • Hlboký pohľad na distribuované systémy
  • Diagnostika problémov v reálnom čase

15.3 Samoopravné databázové systémy

Budúcnosť SQL Server verzie budú obsahovať viac autonómnych funkcií.

Automatická optimalizácia

Databázy sa budú neustále optimalizovať pomocou:

  • Automatické vytváranie a rušenie indexov na základe pracovnej záťaže
  • Úprava nastavení konfigurácie pre optimálny výkon
  • Transparentné prepisovanie neefektívnych dotazov
  • Dynamické riadenie alokácie zdrojov

Inteligentné ladenie

Pokročilé systémy sa budú učiť z výkonnostných vzorcov a automaticky aplikovať odporúčania na ladenie, čím sa zníži potreba manuálneho zásahu správcu databáz.

16. Záver a kľúčové poznatky

16.1 Zhrnutie základných monitorovacích postupov

Efektívne SQL Server Monitorovanie výkonu si vyžaduje komplexný prístup kombinujúci nástroje, techniky a osvedčené postupy.

Zhrnutie kritických počítadiel

Zamerajte monitorovacie úsilie na tieto základné počítadlá:

  • Pamäť: Predpokladaná životnosť stránky, pomer zásahov do vyrovnávacej pamäte, čakajúce na udelenie pamäťových príspevkov
  • CPU: % procesorový čas, dĺžka frontu procesora
  • Disk: Priemerný čas disku v sekundách/čítanie a zápis, dĺžka frontu disku
  • SQL ServerDávkové požiadavky/s, Kompilácie/s, Pripojenia používateľov

Zhrnutie osvedčených postupov

  • Stanovenie základných hodnôt počas bežnej prevádzky
  • Nastavenie inteligentných prahových hodnôt upozornení na základe základných hodnôt
  • Pravidelne kontrolujte údaje o výkonnosti
  • Režijné náklady na monitorovanie zostatkov s granularitou údajov
  • Uchovávajte dlhodobé údaje pre analýzu trendov
  • Pre každý scenár monitorovania použite vhodné nástroje

16.2 Prístup neustáleho zlepšovania

SQL Server Monitorovanie výkonu nie je jednorazová činnosť, ale prebiehajúci proces, ktorý si vyžaduje neustále zdokonaľovanie.

Pravidelné kontrolné cykly

  • Denne: Skontrolujte upozornenia a aktuálny výkon
  • Týždenne: Prehľad trendov a identifikácia vznikajúcich problémov
  • Mesačne: Analyzujte dlhodobé vzorce a kapacitné potreby
  • Štvrťročne: Aktualizácia východiskových hodnôt a kontrola účinnosti monitorovania

Zostaňte v obraze s nástrojmi

Udržiavajte nástroje a techniky monitorovania aktuálne:

  • Vyhodnoťte nové monitorovacie funkcie v SQL Server aktualizácie
  • Testovanie nových nástrojov tretích strán
  • Zúčastňujte sa školení a konferencií
  • Zúčastniť sa SQL Server komunitné fóra
  • Zdieľajte vedomosti s členmi tímu

16.3 Ďalšie kroky

Realizovať SQL Server systematicky monitorovať výkonnosť:

Plán implementácie

  1. Týždeň 1: Nastavenie monitora výkonu so základnými počítadlami
  2. Týždeň 2: Vytvorenie sád zberačov údajov pre automatizovaný zber
  3. Týždeň 3: Stanovenie základných hodnôt počas bežnej prevádzky
  4. Týždeň 4: Konfigurácia upozornení pre kritické prahy
  5. Mesiac 2: Implementujte ďalšie monitorovacie nástroje (DMV, rozšírené udalosti)
  6. Mesiac 3: Vyvíjajte vlastné dashboardy a reporty
  7. prebieha: Spresniť monitorovanie na základe skúseností a meniacich sa požiadaviek

Ďalšie zdroje

Pokračujte v učení o SQL Server monitor výkonu prostredníctvom dokumentácie spoločnosti Microsoft, blogov komunity a praktických cvičení. Experimentujte s rôznymi nástrojmi a technikami, aby ste zistili, čo najlepšie funguje pre vaše prostredie.

17. Často kladené otázky (FAQ)

17.1 Čo sú to most dôležitý SQL Server počítadlá výkonu, ktoré sa majú monitorovať?

Most kritický SQL Server Počítadlá výkonu zahŕňajú:

  • Pamäť: Predpokladaná životnosť stránky (mala by byť > 300 sekúnd) a pomer zásahov do vyrovnávacej pamäte (mala by byť > 99 %)
  • CPU: % procesorového času (trvalé hodnoty <75 %) a dĺžka frontu procesora (mala by byť <2 na jadro)
  • Disk: Priemerný čas disku v sekundách/čítanie a zápis (malo by byť <10 – 20 ms) a dĺžka frontu disku (malo by byť <2 na disk)
  • SQL ServerDávkové požiadavky/s, SQL kompilácie/s a Čakajúce pridelenia pamäte (malo by byť 0)

Tieto počítadlá poskytujú komplexný prehľad o stave systému a pomáhajú rýchlo identifikovať úzke miesta.

17.2 Ako často by som mal zhromažďovať údaje o výkonnosti?

Frekvencia zberu závisí od vašich cieľov monitorovania:

  • Monitorovanie základnej línie: Každú 1 minútu (60 sekúnd)
  • Aktívne riešenie problémov: Každých 15 – 30 sekúnd na krátke obdobia
  • Dlhodobý trend: Každých 5 minút

Vyhnite sa nepretržitému zhromažďovaniu údajov s vysokou frekvenciou, pretože to môže ovplyvniť výkon a generovať nadmerné množstvo údajov. Dlhšie intervaly používajte na bežné monitorovanie a kratšie intervaly iba pri skúmaní špecifických problémov.

17.3 Aký je rozdiel medzi Monitorom výkonu a SQL Server Profiler?

Monitor výkonu a SQL Server Profilery slúžia na rôzne účely:

Performance Monitor:

  • Monitoruje systém a SQL Server počítadlá výkonu
  • Sleduje využitie zdrojov (CPU, pamäť, disk)
  • Nízke réžie, vhodné na nepretržité monitorovanie
  • Poskytuje súhrnné metriky v priebehu času

SQL Server profilovač:

  • Stopy jednotlivca SQL Server udalosti a dotazy
  • Zachytáva podrobné informácie o vykonávaní dotazov
  • Vyššia réžia, neodporúča sa na nepretržité používanie
  • Najlepšie na riešenie problémov so špecifickými dotazmi
  • Zastarané v prospech rozšírených udalostí

Na celkové monitorovanie systému použite nástroj Performance Monitor a na podrobnú analýzu na úrovni dotazov nástroj Extended Events (nie Profiler).

17.4 Vplyv monitora výkonu Can SQL Server výkon?

Pri správnej konfigurácii má Monitor výkonu minimálny vplyv na SQL Server výkon, zvyčajne menej ako 2 % réžia. Nadmerné monitorovanie však môže spôsobiť problémy:

  • Príliš veľa počítadiel zvyšuje réžiu
  • Veľmi krátke intervaly odberu vzoriek (menej ako 15 sekúnd) zaťažujú zdroje
  • Nepretržitý vysokofrekvenčný zber údajov generuje veľké súbory protokolov

Pre minimalizáciu vplyvu:

  • Monitorujte iba potrebné počítadlá
  • Používajte vhodné intervaly odberu vzoriek (60 sekúnd pre bežné monitorovanie)
  • Ukladajte protokoly na disky oddelene od databázových súborov
  • Naplánujte si monitorovanie náročné na zdroje mimo špičky

17.5 Ako dlho by som mal uchovávať údaje o monitorovaní výkonnosti?

Uchovávanie závisí od vašich analytických potrieb a úložnej kapacity:

  • minimum: 3 mesiace na riešenie nedávnych problémov
  • Odporúčaná: 1 – 2 roky na plánovanie kapacity a analýzu trendov
  • optimálna: Na neurčito, ak to úložisko dovolí, pretože historické údaje sa časom stávajú cennejšími

Dáta z počítadiel výkonu sa dobre komprimujú a zaberajú relatívne málo miesta. Zvážte archiváciu starších dát do samostatného úložiska, namiesto ich vymazania. Mnohé organizácie zisťujú, že roky historických dát sú neoceniteľné pre plánovanie kapacity a identifikáciu dlhodobých trendov.

17.6 Aké sú vhodné prahové hodnoty pre kľúčové počítadlá výkonu?

Odporúčané prahové hodnoty pre upozornenia:

  • Čakajúce na udelenie pamäte: Upozornenie, keď > 0
  • Životnosť stránky: Upozornenie pri < 300 sekundách
  • % Čas procesora: Upozornenie, keď je > 80 % po dobu 5 minút
  • Dĺžka frontu procesora: Upozornenie, keď > 2 na jadro
  • Priemerný čas na disku (sekundy)/čítanie alebo zápis: Upozornenie pri > 20 ms
  • Dĺžka fronty disku: Upozornenie, keď > 2 na disk
  • Blokované procesy: Upozornenie pri > 5

Upravte tieto prahové hodnoty na základe vašich základných údajov a špecifických charakteristík pracovnej záťaže. Čo je v jednom prostredí normálne, môže v inom naznačovať problémy.

17.7 Ako môžem monitorovať SQL Server výkon na diaľku?

Diaľkové ovládanie monitora SQL Server prípady s použitím týchto metód:

  1. Performance Monitor: Pri pridávaní počítadiel zadajte názov vzdialeného počítača
  2. PowerShell: Použitie parametra -ComputerName s Get-Counter
  3. DMV: Pripojte sa k vzdialeným serverom prostredníctvom SSMS a vykonajte dotazy na DMV
  4. Nástroje tretích strán: Most monitorovacie nástroje podporujú vzdialené monitorovanie servera

Uistite sa, že pravidlá brány firewall povoľujú prevádzku monitora výkonu a že máte príslušné povolenia na vzdialenom serveri. V prípade viacerých serverov zvážte implementáciu centralizovaného monitorovania s vyhradeným monitorovacím serverom a databázou.

17.8 Aký je najlepší bezplatný nástroj na SQL Server monitor výkonu?

Na monitorovanie je k dispozícii niekoľko vynikajúcich bezplatných nástrojov SQL Server výkon:

  • Monitor výkonu systému Windows: Vstavaný, komplexný a spoľahlivý
  • Monitor aktivít SSMS: Monitorovanie v reálnom čase bez ďalšej inštalácie
  • Rozšírené udalosti: Ľahké monitorovanie udalostí zabudované do SQL Server
  • sp_Kto je aktívny: Populárna bezplatná uložená procedúra na podrobné monitorovanie aktivít
  • Dash pre DBA: Nástroj na monitorovanie s otvoreným zdrojovým kódom a komplexnými funkciami
  • SQLWATCH: Open source s možnosťami monitorovania takmer v reálnom čase

Pre most Organizácie, Performance Monitor v kombinácii s nástrojmi SSMS a sp_WhoIsActive poskytujú vynikajúce monitorovacie možnosti bez dodatočných nákladov.ost.

17.9 Ako exportujem dáta z PerfMonu na analýzu?

Exportujte údaje monitora výkonu pomocou týchto metód:

Exportovať do CSV:

  1. Otvorte Monitor výkonu s načítaným súborom denníka
  2. Kliknite pravým tlačidlom myši na graf a vyberte Uložiť údaje ako
  3. Vybrať Textový súbor (oddelený čiarkou) (.csv)
  4. Vyberte miesto a uložte
  5. Otvoriť v Exceli na analýzu

Použite príkaz Relog:

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

Tento nástroj príkazového riadka konvertuje binárne súbory protokolov (.blg) do formátu CSV pre jednoduchšiu analýzu v tabuľkových aplikáciách.

17.10 Kedy by som mal použiť monitorovacie nástroje tretích strán namiesto vstavaných možností?

Zvážte nástroje tretích strán, keď:

  • Správa veľkého množstva SQL Server inštancie (10+)
  • Vyžaduje sa centralizované monitorovanie vo viacerých dátových centrách
  • Potreba pokročilých funkcií, ako je prediktívna analytika alebo detekcia anomálií
  • Chcem integrované upozorňovanie so systémami riadenia incidentov
  • Vyžadovanie podávania správ o dodržiavaní predpisov a historickej analýzy
  • Nedostatok zdrojov DBA na vytváranie a údržbu vlastných riešení
  • Monitorovanie heterogénnych databázových prostredí (SQL Server, Oracle, MySQL atď.)

Vstavané nástroje fungujú dobre v menších prostrediach alebo keď máte skúsených správcov databáz, ktorí dokážu vyvinúť vlastné monitorovacie riešenia. Nástroje tretích strán poskytujú hodnotu vďaka úspore času, pokročilým funkciám a profesionálnej podpore.

18. Ďalšie zdroje

18.1 Oficiálna dokumentácia

Spoločnosť Microsoft poskytuje rozsiahlu dokumentáciu k SQL Server monitor výkonu:

18.2 Odporúčané nástroje a súbory na stiahnutie

Základné nástroje pre SQL Server monitor výkonu:

  • Nástroj PAL: https://github.com/clinthuffman/PAL
  • sp_Kto je aktívny: http://whoisactive.com/
  • Dash pre DBA: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Súprava prvého záchranára (Brent Ozar): https://www.brentozar.com/first-aid/
  • SQL Server Štúdio správy: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Zdroje komunity

Poučte sa z SQL Server komunita:

  • SQL Server central: https://www.sqlservercentral.com/
  • Blog Brenta Ozara: https://www.brentozar.com/blog/
  • SQL chatka: https://www.sqlshack.com/
  • Tipy pre MSSQL: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • pretečenie zásobníka SQL Server značka: https://stackoverflow.com/questions/tagged/sql-server

Tieto zdroje poskytujú návody, rady na riešenie problémov a osvedčené postupy od skúsených SQL Server profesionáli. Účasť na komunitných fórach vám pomáha učiť sa zo skúseností iných a zdieľať vlastné znalosti.


O autorovi

Yuan Sheng je seniorný správca databáz (DBA) s viac ako 10-ročnými skúsenosťami v SQL Server prostredia a správa podnikových databáz. Úspešne vyriešil stovky scenárov obnovy databáz vo finančných službách, zdravotníctve a výrobných organizáciách.

Yuan sa špecializuje na SQL Server obnova databázy, riešenia s vysokou dostupnosťoua optimalizáciu výkonu. Jeho rozsiahle praktické skúsenosti zahŕňajú správu databáz s veľkosťou viac terabajtov, implementáciu Skupiny dostupnosti vždy zapnutéa vývoj automatizovaných stratégií zálohovania a obnovy pre kritické obchodné systémy.

Vďaka svojim technickým znalostiam a praktickému prístupu sa Yuan zameriava na vytváranie komplexných príručiek, ktoré pomáhajú správcom databáz a IT profesionálom riešiť zložité SQL Server efektívne zvláda výzvy. Udržiava si prehľad o najnovších SQL Server vydania a vyvíjajúce sa databázové technológie spoločnosti Microsoft, pričom pravidelne testuje scenáre obnovy, aby sa zabezpečilo, že jeho odporúčania odrážajú osvedčené postupy z reálneho sveta.

Máte otázky o SQL Server obnovenie alebo potrebujete ďalšie pokyny na riešenie problémov s databázou? Yuan víta spätnú väzbu a návrhy na zlepšenie týchto technických zdrojov.

Zdieľať teraz: