Sdílej nyní:
Obsah skrýt

1. Úvod do SQL Server Performance Monitor

1.1 Co je SQL Server Monitor výkonu?

SQL Server Monitor výkonu je proces sledování, analýzy a správy výkonu a stavu vašeho SQL Server databáze. Zahrnuje shromažďování a interpretaci dat o různých aspektech vašeho databázového systému s cílem zajistit optimální výkon, předcházet problémům a udržovat stav databáze.

Monitorování výkonu zahrnuje sledování doby provádění dotazů, využití zdrojů, výkonu indexů, blokování a zablokování a vzorců růstu databáze. Tento nepřetržitý dohled pomáhá správcům identifikovat potenciální problémy dříve, než ovlivní uživatele nebo obchodní operace.

1.2 Klíčové výhody monitorování výkonu

Efektivní SQL Server Monitor výkonu nabízí několik klíčových výhod:

  • Proaktivní detekce problémů: Identifikujte a řešte potenciální problémy dříve, než ovlivní uživatele nebo obchodní operace
  • Optimalizace výkonu: Identifikujte úzká hrdla a neefektivitu pro zlepšení celkového výkonu databáze
  • Plánovaní kapacity: Předvídejte potřeby zdrojů a plánujte budoucí růst na základě historických dat
  • Soulad a zabezpečení: Zajistit dodržování regulačních požadavků a odhalovat podezřelé aktivity

1.3 Běžné problémy s výkonem

Bez řádného monitoru výkonu databáze SQL čelí organizace několika rizikům:

  • Neočekávané výpadky, které narušují provoz firmy
  • Špatný výkon aplikace ovlivňující uživatelský zážitek
  • Ztráta nebo poškození dat
  • Neefektivní využívání zdrojů vede k zbytečným nákladům
  • Frustrovaní uživatelé a potenciální ztráta příjmů

Podle studie společnosti IDC z roku 2023 pramení 65 % problémů s výkonem databází ze špatných postupů monitorování nebo optimalizace.

2. Principy Sledování výkonu systému Windows (PerfMon)

2.1 Co je Sledování výkonu systému Windows?

Sledování výkonu systému Windows (PerfMon) je vestavěný nástroj systému Windows, který monitoruje systémové prostředky a výkon aplikací. SQL Server PerfMon poskytuje administrátorům neocenitelné informace o operačním systému i SQL Server metriky, což je nezbytné pro komplexní analýzu výkonnosti.

Sledování výkonu systému Windows (PerfMon)

PerfMon měří statistiky výkonu v pravidelných intervalech a ukládá je do souborů pro pozdější analýzu. Správci databází si mohou vybrat časový interval, formát souboru a statistiky, které chtějí sledovat. Nástroj není SQL Server-specifický – systémoví administrátoři jej používají k monitorování samotného systému Windows, Exchange, souborových serverů a jakékoli aplikace, která může mít úzká hrdla.

2.2 Spuštění Monitoru výkonu

Sledování výkonu můžete spustit několika způsoby:

  1. klikněte Home, typ perfmon Ve vyhledávacím poli klikněte ve výsledku vyhledávání na „Monitor výkonu“:
    Vyhledejte a spusťte PerfMon z vyhledávacího pole Windows.
  2. Pro média Windows + R, typ perfmon, a stiskněte tlačítko vstoupit
    Spusťte PerfMon z okna Spustit ve Windows.
  3. přejděte na řídicí panel -> Systém a zabezpečení -> Nástroje pro správu -> Performance Monitor
    Spusťte PerfMon z Ovládacích panelů -> Systém a zabezpečení -> Nástroje pro správu -> Sledování výkonu

3. nezbytný SQL Server Čítače výkonu

3.1 Čítače výkonu paměti

Čítače paměti jsou pro monitorování klíčové SQL Server výkon, protože indikují, zda má vaše databáze dostatek paměťových prostředků.

Dostupné MB

Tento čítač ukazuje množství fyzické paměti, které je okamžitě k dispozici pro alokaci. Mělo by zůstat poměrně konstantní a ideálně by nemělo klesnout pod 4096 MB. Nízké hodnoty mohou naznačovat, že SQL ServerNastavení maximální paměti je ponecháno na výchozí hodnotě nebo neSQL Server aplikace spotřebovávají paměť.

Očekávaná délka života na stránce

Očekávaná životnost stránky (Page Life Expectancy) měří, jak dlouho (v sekundách) stránka zůstává ve vyrovnávací paměti, aniž by se na ni odkazovalo. Normální hodnota je 300 sekund nebo více. Nižší hodnoty naznačují zatížení paměti a nadměrnou obměnu vyrovnávací paměti, což snižuje efektivitu mezipaměti.

Poměr přístupů do mezipaměti vyrovnávací paměti

Tento čítač udává procento datových požadavků zodpovězených pomocí mezipaměti SQL bufferu (paměti) namísto čtení z disku. Obvykle dosahuje nebo překračuje 99 %. Nižší hodnoty naznačují, že SQL Server potřebuje více paměti nebo se po restartu stále zahřívá.

Čeká se na přidělení paměti

Toto ukazuje počet procesů čekajících na paměť v rámci SQL ServerZa normálních podmínek by tato hodnota měla být trvale 0. Vyšší hodnoty značí nedostatečnou alokaci paměti pro SQL Server.

Paměť cílového serveru vs. celková paměť serveru

Paměť cílového serveru udává ideální množství paměti. SQL Server chce použít. Celková paměť serveru ukazuje, co SQL Server aktuálně používá. Poměr mezi těmito hodnotami by měl být přibližně 1. Významné rozdíly mohou naznačovat zatížení paměti nebo nedostatek dostupné paměti.

3.2 Čítače výkonu procesoru

Čítače CPU pomáhají identifikovat úzká hrdla procesoru a pochopit, jak SQL Server využívá výpočetní prostředky.

% času procesoru

Toto měření měří procento uplynulého času, který procesor stráví prováděním nečinných vláken. Na aktivních serverech mohou hodnoty vyskočit až na 100 %, ale trvalé využití nad 70–75 % obvykle naznačuje problémy s výkonem pro uživatele. Chybějící nebo nedostatečné indexy často způsobují vysoké využití CPU.

% privilegovaného času

Procesorový čas se dělí na zpracování v uživatelském režimu a v privilegovaném (jádrovém) režimu. Veškerý přístup k disku a I/O operace probíhají v jádrovém režimu. Pokud tento čítač překročí 25 %, systém pravděpodobně provádí příliš mnoho I/O operací. Normální hodnoty se pohybují mezi 5 % a 10 %.

Délka fronty procesoru

Tento čítač zobrazuje vlákna čekající na prostředky CPU. Hodnoty jsou trvale nad 1 (s výjimkou SQL Server komprese záloh) indikují zatížení CPU. To často znamená, že na SQL Server stroj, což porušuje osvědčené postupy.

Přepínání kontextu/s

Toto měří, jak často procesor přepíná mezi vlákny. Nadměrné přepínání kontextu může ovlivnit výkon a indikuje vysoké zatížení systému.

3.3 Čítače výkonu diskového I/O

Čítače disku jsou nezbytné pro monitorování výkonu SQL, protože diskové I/O operace se často stávají hlavním úzkým hrdlem v databázových systémech.

% času na disku

Toto zaznamenává procento času, kdy byl disk zaneprázdněn operacemi čtení/zápisu. Hodnoty trvale nad 85 % naznačují úzké hrdlo I/O. Protože disk je mnohem pomalejší než paměť, snížení této metriky zlepšuje výkon.

Průměrný objem disku (s/čtení) a průměrný objem disku (s/zápis)

Tyto čítače měří průměrný čas (v sekundách) pro operace čtení a zápisu. Pokud průměrné hodnoty přesáhnou 10–20 ms, trvá disku zpracování dat příliš dlouho. Jednotky pro protokolování transakcí vyžadují obzvláště rychlý zápis.

Délka fronty disku

Toto zobrazuje nevyřízené požadavky na čtení/zápis na disk. Hodnoty trvale vyšší než 2 (nebo 2 na disk u polí RAID) naznačují, že disk nedokáže zpracovat požadavky na I/O.

Bajty disku/s

Toto monitoruje rychlost přenosu dat na disk a z disku. Pokud tato rychlost překročí jmenovitou kapacitu disku, začnou se data hromadit, což je indikováno zvětšující se délkou fronty disku.

Přenosy disku/s

Toto sleduje počet operací čtení/zápisu provedených na disku. SQL Server Přístup k datům je obvykle náhodný, což je pomalejší kvůli pohybu hlavičky disku. Ujistěte se, že tato hodnota zůstává pod maximálním výkonem vašeho disku (obvykle 100/s u standardních disků).

3.4 SQL Server Specifické čítače

3.4.1 Čítače správce vyrovnávací paměti

Monitorování čítačů Buffer Manageru SQL Serveroperace s vyrovnávací pamětí:

  • Přečtení stránky/s: Kumulativní počet fyzických přečtení stránek databáze
  • Počet zápisů stránky/s: Kumulativní počet zápisů fyzických stránek databáze
  • Líné zápisy/s: Počet vyrovnávacích pamětí zapsaných programem lazy writer pro uvolnění paměti
  • Stránky kontrolních bodů/s: Stránky vyprázdněné kontrolním bodem nebo jinými operacemi vyžadujícími vyprázdnění všech nefunkčních stránek

3.4.2 Čítače statistik SQL

Tyto čítače poskytují vhled do SQL Server zpracování dotazů:

  • Počet dávkových požadavků/s: Počet dávkových požadavků SQL přijatých serverem. Slouží jako měřítko aktivity serveru.
  • Kompilace SQL/s: Počet kompilací SQL. Mělo by být 10 % nebo méně z celkového počtu dávkových požadavků/s.
  • Rekompilace SQL/s: Počet rekompilací SQL. Mělo by být také 10 % nebo méně z celkového počtu dávkových požadavků/s.

3.4.3 Obecné statistické čítače

  • Uživatelská připojení: Počet uživatelů připojených k systému. Používá se jako měřítko pro sledování růstu připojení v čase.
  • Blokované procesy: Aktuální počet blokovaných procesů. V ideálním případě by měl být 0.

3.4.4 Čítače správce paměti

  • Udělení paměti čeká na schválení: Celkový počet procesů čekajících na udělení paměti pracovního prostoru. V ideálním případě by měl být 0.

4. Nastavení sledování výkonu pro SQL Server(Windows Vista / Server 2008 a novější)

Nejprve musíme vytvořit kontejner pro snadnější správu čítačů:

  • V systémech Windows Vista / Server 2008 a novějších verzích můžete v této části vytvářet sady sběračů dat.
  • Pro systémy Windows XP / Server 2003 a starší verze můžete vytvářet protokoly čítačů v další část.

4.1 Co jsou sady sběračů dat?

Sady sběračů dat organizují čítače výkonu, data trasování událostí a informace o konfiguraci systému do jedné sběrné jednotky. Poskytují větší flexibilitu než jednoduché protokoly čítačů a umožňují automatizovaný, plánovaný sběr dat pro komplexní monitorování výkonu databáze SQL.

4.2 Vytvoření sady sběračů dat

Vytvořte si vlastní sadu sběračů dat pro monitorování SQL Server čítače výkonu:

  1. Otevřít Sledování výkonu
  2. Rozšířit Sady sběračů dat
  3. Klepněte pravým tlačítkem myši Definováno uživatelem
  4. vybrat Nový -> Sada sběračů dat
    Vytvoření nové sady sběračů dat v PerfMonu
  5. Zadejte popisný název (např. „SQL Server „Metriky výkonu“)
  6. vybrat Ruční vytvoření (pokročilé)
    Nastavte název popisu pro sadu sběračů dat
  7. klikněte další
  8. Kontrola Vytvořit datové protokoly -> Čítač výkonu
    V průvodci vytvořením nové sady kolektorů dat vyberte možnost Vytvořit datové protokoly -> Čítač výkonu.
  9. klikněte další
  10. klikněte přidat vybrat čítače
  11. přidat požadovanou SQL Server a systémové čítače.
    Přidejte čítače výkonu do nové sady sběračů dat.
  12. sada Interval vzorkování
    • Pro běžné monitorování použijte 1 minutu (60 sekund)
    • Pro aktivní odstraňování problémů použijte 15–30 sekund
    • Vyhněte se dlouhodobému spouštění vysokofrekvenčních záznamů, protože mohou ovlivnit výkon a generovat nadměrné množství dat.

    Nastavte interval vzorkování v novém průvodci sadou sběračů dat.

  13. klikněte další
  14. Vyberte umístění pro uložení protokolů
    V průvodci novou sadou sběračů dat nastavte umístění pro ukládání dat o výkonu.
  15. klikněte úprava, bude vytvořena nová sada sběračů dat.
  16. Ve výchozím nastavení bude nová sada sběračů dat NENÍ spustit automaticky. Musíte ho najít v levém panelu pod Výkon -> Sady sběračů dat -> Definováno uživatelem -> Váš sběrač dat, klikněte na něj pravým tlačítkem myši a vyberte Home
    Spusťte novou sadu sběračů dat v PerfMonu.

4.3 Klíčové čítače k ​​přidání

  • Paměť -> Dostupné MB
  • Fyzický disk -> Průměrný počet sekund na disku/čtení (všechny instance kromě _Total)
  • Fyzický disk -> Průměrný počet sekund na disku/zápis (všechny instance kromě _Total)
  • Fyzický disk -> Čtení disku/s (všechny instance kromě _Total)
  • Fyzický disk -> Zápisy na disk/s (všechny instance kromě _Total)
  • Procesor -> % času procesoru (všechny instance kromě _Total)
  • SQLServer: Obecné statistiky -> Uživatelská připojení
  • SQLServer: Správce paměti -> Čeká na udělení paměťových grantů
  • SQLServer: Statistiky SQL -> Dávkové požadavky/s
  • SQLServer: Statistiky SQL -> Kompilace SQL/s
  • SQLServer: Statistiky SQL -> Rekompilace SQL/s
  • Systém -> Délka fronty procesoru

4.4 Nastavení podmínek zastavení

Nakonfigurujte podmínky zastavení, abyste zabránili neomezenému růstu dat:

  1. Po vytvoření sady sběračů dat na ni klikněte pravým tlačítkem myši a vyberte Nemovitosti
  2. Klepněte na tlačítko Podmínka zastavení Karta
  3. umožnit Celková doba trvání
  4. Nastavit dobu trvání na 1 den (24 hodin)
  5. klikněte OK uložit

Nastavení podmínky zastavení pro sadu sběračů dat

Díky tomu se protokol příliš nezvětší a v případě plánování se automaticky restartuje.

4.5 Plánování sběru dat

Automatizujte sběr dat pro zajištění konzistentního monitorování:

  1. Klikněte pravým tlačítkem myši na sadu sběračů dat a vyberte Nemovitosti
  2. Klepněte na tlačítko Naplánovat Karta
  3. klikněte přidat vytvořit nový rozvrh
  4. Konfigurace data a času zahájení
  5. Nastavit vzorec opakování (např. denně)
  6. klikněte OK uložit rozvrh

Nastavení plánu pro sadu sběračů dat

Pro automatické spuštění nakonfigurujte sadu sběračů dat tak, aby se spouštěla ​​při spuštění serveru, a to vytvořením spouštěcí události v Plánovači úloh systému Windows.

5. Nastavení sledování výkonu pro SQL Server(Windows XP / Server 2003 a starší)

V systému Windows XP / Server 2003 a starších verzích můžete vytvářet protokoly čítačů, které vám umožňují vybrat sadu čítačů výkonu a pravidelně je protokolovat do souboru.

5.1 Vytváření protokolů počítadla

Chcete-li vytvořit nový protokol počítadla, postupujte takto:

  1. Otevřít Sledování výkonu
  2. Rozšířit Záznamy a upozornění výkonu v levém panelu
  3. Klepněte pravým tlačítkem myši Protokoly počítadla
  4. vybrat Nové nastavení protokolu
  5. Pojmenujte protokol názvem vašeho databázového serveru (např. „ProductionSQL01“)
  6. klikněte OK pro zahájení konfigurace

Vytvoření samostatných protokolů čítačů pro každý server umožňuje testovat výkon na jednotlivých serverech, aniž by bylo nutné shromažďovat data pro všechny servery současně.

5.2 Přidání čítačů výkonu

Po vytvoření protokolu čítačů přidejte konkrétní čítače výkonu, které chcete monitorovat:

  1. Klepněte na tlačítko Přidat čítače tlačítko
  2. Změňte název počítače tak, aby odkazoval na váš SQL Server instance
  3. Pro média Tab načíst dostupné objekty výkonu
  4. Vyberte z rozbalovací nabídky výkonnostní objekt (např. Memory)
  5. Vyberte konkrétní čítače z seznam
  6. V případě potřeby vyberte instance (např. jednotlivé procesory nebo disky)
  7. klikněte přidat zahrnout počítadlo
  8. Opakujte pro všechny požadované čítače
  9. klikněte zavřít po dokončení

5.3 Konfigurace intervalů vzorkování

Interval vzorkování určuje, jak často Performance Monitor shromažďuje data. Nakonfigurujte vhodné intervaly na základě vašich potřeb monitorování:

  1. Ve vlastnostech protokolu čítače vyhledejte Ukázka dat každých
  2. Nastavte interval (výchozí je 15 sekund)
  3. Pro monitorování základních hodnot používejte denní intervaly sběru 1 minuty.
  4. Pro řešení problémů používejte krátké intervaly 15–30 sekund.
  5. klikněte OK použít

Nezapomeňte, že menší intervaly generují více dat, která se hůře vykreslují a analyzují. Větší intervaly mohou vynechat důležité výkyvy. Vyvažte granularitu dat s požadavky na úložiště a analýzu.

5.4 Konfigurace souborů protokolu

Správná konfigurace souboru protokolu zajišťuje efektivní a přístupné ukládání dat:

  1. Klepněte na tlačítko Soubory protokolu záložka ve vlastnostech protokolu počítadla
  2. Změnit typ souboru protokolu na Textový soubor (oddělený čárkami) pro snadný import z Excelu
  3. klikněte Konfigurace
  4. Nastavte cestu k souboru na vyhrazené umístění (např. sdílenou složku PerformanceLogs)
  5. klikněte OK potvrdit

Pro ukládání protokolů použijte sdílenou složku přístupnou ze sítě, abyste k souborům mohli přistupovat vzdáleně a sdílet je s ostatními uživateli.

5.5 Nastavení přihlašovacích údajů

Nakonfigurujte příslušné přihlašovací údaje, aby Monitor výkonu mohl přistupovat ke vzdálenému serveru. SQL Server instance:

  1. Ve vlastnostech protokolu čítače vyhledejte Běž jako
  2. Zadejte uživatelské jméno vaší domény ve formátu: DOMÉNA\uživatelské_jméno
  3. klikněte Nastavit heslo
  4. Zadejte a potvrďte své heslo
  5. klikněte OK uložit

Díky tomu může služba PerfMon shromažďovat statistiky pomocí oprávnění vaší domény, nikoli pomocí vlastních přihlašovacích údajů.

6. Analýza dat z monitoru výkonu

6.1 Zobrazení souborů protokolu v nástroji Sledování výkonu

Monitor výkonu dokáže zobrazit historická data z uložených souborů protokolů:

  1. Otevřít Sledování výkonu
  2. V levém podokně klikněte na Monitorovací nástroje -> Performance Monitor.
  3. Klikněte pravým tlačítkem myši kamkoli v oblasti grafu
  4. vybrat Nemovitosti
    Otevřete vlastnosti v PerfMonu kliknutím pravým tlačítkem myši kamkoli v oblasti grafu.
  5. Klepněte na tlačítko Zdroj Karta
  6. vybrat Záznam souborů přepínač
  7. klikněte přidat
  8. Přejděte do souboru protokolu (.blg nebo .csv)
  9. Vyberte soubor a klikněte na Otevřená
    Nastavte soubor protokolu jako zdroj grafiky v PerfMonu.
  10. Použití Časový rozsah posuvníkem vyberte období, které chcete analyzovat
  11. klikněte OK zavřete dialogové okno Vlastnosti
  12. Kliknutím na zelenou ikonu plus přidáte čítače ze souboru protokolu.
    Kliknutím na zelenou ikonu plus přidáte čítače ze souboru protokolu v PerfMonu.
  13. Vyberte požadované čítače, které chcete zobrazit
    Přidejte požadované čítače do grafiky v PerfMonu.
  14. klikněte OK

Graf nyní zobrazí historická data ze souboru protokolu. Pomocí posuvníku Časový rozsah ve vlastnostech můžete zúžit výběr konkrétních časových období pro podrobnou analýzu.

6.2 Export dat do Excelu

Excel nabízí výkonné analytické funkce pro data čítačů výkonu:

  1. Otevřete Sledování výkonu s načteným souborem protokolu
  2. Klikněte pravým tlačítkem myši kamkoli v oblasti grafu
  3. vybrat Uložit data jako
  4. Vyberte umístění pro soubor
  5. vybrat Textový soubor (oddělený čárkami) (.csv) z rozbalovací nabídky
  6. klikněte Uložit
  7. Otevřete soubor CSV v Excelu

Exportujte data do souboru v PerfMonu.

Pro lepší analýzu naformátujte exportovaná data:

  1. Smažte poloprázdný řádek 2 a vyčistěte buňku A1
  2. Formátovat sloupec A jako datum/čas
  3. Formátování číselných sloupců s nulovým počtem desetinných míst a oddělovačem tisíců
  4. Vyhledání a nahrazení názvů serverů v záhlavích (např. nahrazení „\\NÁZEVSERVERU“ prázdným textem)
  5. Vyčištění názvů objektů v záhlavích (např. „Paměť“, „Fyzický disk“, „Procesor“)
  6. Pro lepší viditelnost zmenšete písmo záhlaví na 8 bodů.

6.3 Interpretace hodnot čítače

6.3.1 Analýza čítače paměti

Při analýze čítačů paměti hledejte tyto indikátory:

  • Dostupné MB: Mělo by trvale zůstat nad 4096 MB
  • Životnost stránky: Hodnoty nad 300 sekund naznačují zdravou paměť. Nižší hodnoty naznačují zátěž paměti.
  • Poměr přístupů do mezipaměti vyrovnávací paměti: Mělo by dosahovat nebo překračovat 99 %. Nižší hodnoty naznačují nadměrné čtení z disku.
  • Udělení paměti čeká na schválení: Mělo by být vždy 0. Jakákoli kladná hodnota indikuje nedostatek paměti.

6.3.2 Analýza čítače CPU

Mezi ukazatele výkonu CPU patří:

  • % Doba procesoru: Dlouhodobé používání nad 75 % naznačuje problémy s výkonem. Výkyvy na 100 % jsou normální, ale neměly by přetrvávat.
  • Délka fronty procesoru: Hodnoty nad 1 značí zatížení CPU. Zkontrolujte Správce úloh a zjistěte, které procesy spotřebovávají CPU.
  • % Privilegovaný čas: Mělo by se pohybovat mezi 5–10 %. Hodnoty nad 25 % naznačují nadměrný počet I/O operací.

6.3.3 Analýza čítače disků

Prahové hodnoty výkonu disku:

  • Průměrný čas disku v sekundách/čtení a zápis: Mělo by zůstat pod 10–20 ms. Vyšší hodnoty značí pomalé diskové subsystémy.
  • Délka fronty disku: Hodnoty trvale nad 2 (nebo 2 na disk v RAID) naznačují úzká místa I/O.
  • % Čas disku: Trvalé hodnoty nad 85 % indikují nasycení disku.

6.4 Používání vzorců a statistiky

Přidejte statistické vzorce do Excelu pro rychlou analýzu:

  1. Vložte 7 prázdných řádků na začátek tabulky
  2. Přidejte popisky do sloupce A: Průměr, Medián, Min, Max, Standardní odchylka
  3. Do buňky B2 zadejte: =AVERAGE(B9:B100) (upravte B100 na poslední řádek dat)
  4. Do buňky B3 zadejte: =MEDIAN(B9:B100)
  5. Do buňky B4 zadejte: =MIN(B9:B100)
  6. Do buňky B5 zadejte: =MAX(B9:B100)
  7. Do buňky B6 zadejte: =STDEV(B9:B100)
  8. Zkopírujte vzorce do všech sloupců čítače
  9. Vyberte buňku B9 a stiskněte Alt+W+F+Enter pro zmrazení panelů.

Tyto statistiky pomáhají identifikovat trendy, odlehlé hodnoty a normální provozní rozsahy pro každý čítač.

7. Nástroj pro analýzu výkonu protokolů (PAL)

7.1 Úvod do PALu

Analýza výkonu pro protokoly (PAL) je bezplatný nástroj vyvinutý Clintem Huffmanem, který analyzuje protokoly Performance Monitoru a generuje HTML zprávy s analýzou prahových hodnot. PAL porovnává vaše data o výkonu se známými prahovými hodnotami a poskytuje podrobná doporučení pro SQL Server optimalizace výkonu.

Stáhněte si PAL z repozitáře GitHub: https://github.com/clinthuffman/PAL Externí odkaz

7.2 Nastavení PALu

Nainstalujte PAL podle těchto kroků:

  1. Stáhněte si instalační soubor PAL z GitHubu
  2. Spusťte instalační program
  3. klikněte další na úvodní obrazovce
  4. Zkontrolujte a přijměte instalační adresář
  5. klikněte další pokračovat
  6. klikněte instalovat pro zahájení instalace
  7. Počkejte, až dokončíte instalaci
  8. klikněte úprava

7.3 Zpracování souborů protokolu pomocí PAL

Analyzujte protokoly sledování výkonu pomocí protokolu PAL:

  1. Spusťte PAL z nabídky Start nebo instalačního adresáře
  2. Klepněte na tlačítko Protokol počítadla Karta
  3. klikněte Procházet vyberte soubor .blg
  4. Přejděte do souboru protokolu sledování výkonu
  5. klikněte Otevřená
  6. Klepněte na tlačítko Soubor prahových hodnot Karta
  7. Vyberte soubor s prahovou hodnotou z rozbalovací nabídky (např. „SQL Server 2016 ”)
  8. Klepněte na tlačítko otázky Karta
  9. Odpovězte na otázky týkající se konfigurace vašeho systému
  10. Uveďte, zda vaše SQL Server je OLTP nebo datový sklad
  11. Zadejte celkovou dostupnou RAM
  12. Klepněte na tlačítko Možnosti výstupu Karta
  13. Vyberte výstupní adresář pro HTML sestavu
  14. Kontrola HTML výstupní formát
  15. Klepněte na tlačítko Provést Karta
  16. Zkontrolujte svůj výběr
  17. Kontrola Zahájit realizaci nyní
  18. klikněte úprava

7.4 Analýza zpráv PAL

Po dokončení analýzy PAL vygeneruje HTML zprávu obsahující:

  • Shrnutí problémů s výkonností
  • Podrobná analýza protiúčtu s grafy
  • Porušení prahových hodnot je barevně zvýrazněno
  • Konkrétní doporučení pro každý problém
  • Historické trendy a vzorce

Zpráva používá barevné kódování k označení závažnosti: červená pro kritické problémy, žlutá pro varování a zelená pro metriky v pořádku. Projděte si každou část, abyste pochopili úzká místa ve výkonu, a řiďte se doporučeními PAL pro optimalizaci.

8. Alternativní SQL Server Monitorovací nástroje

8.1 Vestavěný SQL Server Tools

8.1.1 SQL Server Activity Monitor

SQL Server Activity Monitor zobrazuje informace v reálném čase o SQL Server procesy a výkon:

  1. Otevřená SQL Server Management Studio (SSMS) a připojení k vaší instanci serveru
  2. Klikněte pravým tlačítkem myši na název serveru v Průzkumníku objektů.
  3. vybrat Activity Monitor
    Spustit Sledování aktivity v SQL Server Studio pro správu.

Monitor aktivity zobrazuje procesy, čekací doby na zdroje, operace I/O s datovými soubory a nedávné náročné dotazy. Poskytuje rychlý přehled o aktuální aktivitě databáze, ale neukládá historická data.

Monitor aktivity v SQL Server

8.1.2 SQL Server Výkonový panel

SQL Server Management Studio obsahuje vestavěné reporty výkonu:

  1. In SQL Server Management Studio (SSMS), klikněte pravým tlačítkem myši na SQL Server instance v Průzkumníku objektů
  2. vybrat zprávy -> Standardní zprávy
  3. Vyberte si z dostupných přehledů, jako například Výkonový panel
    Otevřít Dashboard výkonu v SQL Server Studio pro správu.

Panel výkonnosti poskytuje vizuální přehled o SQL Server výkon instance, včetně využití CPU systému, aktuálních čekajících požadavků a metrik výkonu. Přístup k nim je možný prostřednictvím nabídky Standardní sestavy.

Dashboard výkonu v SQL Server Management studio

8.1.3 SQL Server profil

SQL Server profil zachycuje a analyzuje SQL Server události, jako je provádění dotazů, transakční operace a aktivity přihlášení.

Začít SQL Server profilovač:

  1. In SQL Server Management Studio, klikněte Tools -> SQL Server profil
    Home SQL Server Profiler v SQL Server Studio pro správu.

Profiler vytváří značné režijní náklady na výkon, proto jej používejte uvážlivě a nejlépe mimo špičku. Ve většině scénářů poskytuje Extended Events lepší výkon s menším dopadem.

SQL Server profil

8.1.4 Rozšířené události

Rozšířené události je lehký systém pro monitorování výkonu zabudovaný do SQL ServerNahrazuje SQL Server Profiler s lepším výkonem a nižšími režijními náklady.

Klíčové vlastnosti patří:

  • Podrobné monitorování specifických událostí
  • Minimální dopad na výkon
  • Přizpůsobitelné relace akcí
  • Integrace se SSMS a dalšími nástroji
  • Podpora komplexního filtrování a agregace

Vytvoření relací rozšířených událostí pomocí SSMS:

  1. In Průzkumník objektů, rozbalte svůj server a přejděte na Správa -> Rozšířené události -> Relace
  2. Klepněte pravým tlačítkem na Sessions A zvolte Průvodce novou relací
    Zahájit novou relaci rozšířených událostí v SQL Server Studio pro správu.
  3. Postupujte podle pokynů pro zahájení nové relace.

8.1.5 Dynamické pohledy pro správu (DMV)

DMV zpřístupňují podrobné informace o stavu serveru pro monitorování jeho stavu, diagnostiku problémů a ladění výkonu. Mezi klíčové DMV patří:

  • sys.dm_exec_query_stats: Statistiky výkonu dotazů
  • sys.dm_os_wait_stats: Typy čekání ovlivňující výkon serveru
  • sys.dm_os_performance_counters: SQL Server data čítače výkonu
  • sys.dm_exec_requests: Aktuálně se provádějí požadavky
  • sys.dm_exec_sessions: Aktivní uživatelské relace

Dotazujte se na tato zobrazení pomocí T-SQL pro přístup k datům o výkonu v reálném čase a historickým metrikám.

Základní použití

-- 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 Řešení pro monitorování od třetích stran

Redgate SQL Monitor

Redgate SQL Monitor se specializuje na monitorování SQL Server a prostředí Azure SQL Database. Nabízí monitorování v rámci celého areálu, přizpůsobitelná upozornění a řídicí panely, podrobné funkce pro tvorbu reportů a integraci s dalšími nástroji Redgate.

Redgate SQL Server monitor

SolarWinds SQL Server Monitorovací nástroj

SolarWinds SQL Server Monitorovací nástroj, také známý jako SQL Sentry, je určen k diagnostice, řešení a prevenci závažných problémů s výkonem SQL Server.

SolarWinds SQL Server Monitorovací nástroj

IDERA SQL Server Nástroj pro sledování výkonu

IDERA SQL Diagnostic Manager je výkonný nástroj SQL Server nástroj pro sledování výkonu určený k proaktivnímu sledování výkonu, diagnostice a ladění.

IDERA SQL Server Nástroj pro sledování výkonu

SQL Monitoring správce aplikací

Applications Manager nabízí Microsoft SQL Server Monitorovací nástroj, který poskytuje užitečná IT řešení. Je navržen tak, aby dohlížel na výkon databází SQL a současně identifikoval chyby a řešil problémy, které by mohly vést k zastavení provozu organizace.

Sledování SQL správce aplikací

8.3 Nástroje pro monitorování s otevřeným zdrojovým kódem

DBA Dash

DBA Dash je bezplatný monitorovací nástroj s otevřeným zdrojovým kódem, který poskytuje přehled o SQL Server stav, výkon a aktivita. Je obzvláště užitečný pro malá až středně velká prostředí a zahrnuje denní kontroly databáze, monitorování výkonu a sledování konfigurace.

SQLWATCH

SQLWATCH nabízí decentralizované zpracování téměř v reálném čase SQL Server monitorování s 5sekundovou granularitou pro zachycení špičkových nárůstů pracovní zátěže. Podporuje Grafanu pro řídicí panely v reálném čase a Power BI pro hloubkovou analýzu. Nástroj nabízí rozsáhlé možnosti konfigurace, nulové nároky na údržbu a neomezenou škálovatelnost.

Observer

Vyvinutý společností Stack Exchange, Opserver monitoruje více systémů včetně SQL Server, Redis a Elasticsearch. Poskytuje zobrazení „všech serverů“ pro statistiky CPU, paměti, sítě a hardwaru v celé vaší infrastruktuře.

sp_Kdo je aktivní

sp_WhoIsActive je komplexní uložená procedura pro monitorování aktivit, kterou vytvořil Adam Machanic. Funguje se všemi SQL Server verze od roku 2005 až do současných vydání a je široce používán SQL Server DBA pro monitorování aktivit v reálném čase.

Chcete-li použít sp_WhoIsActive, stáhněte si jej z http://whoisactive.com/, nainstalujte jej do databáze a spusťte:

EXEC sp_WhoIsActive

Procedura zobrazuje aktuálně prováděné dotazy, informace o čekání, podrobnosti o blokování a spotřebu zdrojů.

9. Nejlepší postupy pro SQL Server Performance Monitor

9.1 Stanovení základních hodnot výkonnosti

Základní výkonnostní linie stanovují normální provozní parametry pro váš SQL Server prostředí. Bez výchozích hodnot nelze určit, zda aktuální metriky naznačují problémy, nebo zda představují typické chování.

Vytvořte základní linie pomocí:

  1. Sběr dat o výkonu během běžného provozu po dobu alespoň jednoho týdne
  2. Zaznamenávání metrik během špičky i mimo ni
  3. Dokumentace typických hodnot pro čítače klíčů
  4. Zaznamenávání sezónních výkyvů, pokud je to relevantní
  5. Ukládání základních dat pro porovnání s budoucími metrikami

Aktualizujte základní hodnoty čtvrtletně nebo po významných změnách infrastruktury, aktualizacích aplikací nebo úpravách databáze.

9.2 Nastavení vhodných prahových hodnot pro výstrahy

Nakonfigurujte inteligentní prahové hodnoty pro příjem smysluplných upozornění, aniž byste se museli zahlcovat notifikacemi:

  • Hodnota Nevyřízené granty paměti > 0 označuje zatížení paměti
  • Délka fronty procesoru > 2 na jádro naznačuje úzké hrdlo procesoru
  • Čas disku/čtení nebo zápis > 20 ms indikuje pomalý vstup/výstup
  • Blokované procesy > 5 signálů konfliktních problémů
  • Očekávaná životnost stránky < 300 sekund značí zatížení paměti

Upravte prahové hodnoty na základě vašich základních dat a specifických charakteristik pracovní zátěže. Používejte adaptivní prahové hodnoty, které zohledňují běžné výkyvy ve vašem prostředí.

9.3 Pravidelná kontrola a analýza dat

Naplánujte si pravidelné kontroly výkonnosti, abyste identifikovali trendy a vznikající problémy:

  • Denně: Prohlížet si hlavní metriky a nedávná upozornění
  • Týdně: Provádějte hloubkovou analýzu trendů výkonnosti
  • Měsíčně: Generování komplexních reportů a porovnávání s výchozími hodnotami
  • Čtvrtletně: Kontrola plánování kapacity a dlouhodobých trendů

Dokumentujte zjištění a sledujte zlepšování výkonnosti v průběhu času.

9.4 Režie monitorování vyvažování

Samotné monitorování spotřebovává zdroje, proto vyvažte sběr dat s dopadem na výkon:

  • Pro nepřetržité monitorování používejte intervaly 30–60 sekund.
  • Pro aktivní odstraňování problémů používejte pouze 15sekundové intervaly.
  • Omezení doby trvání sady sběrače dat, aby se zabránilo nadměrnému množství dat
  • Ukládejte protokoly na oddělené disky od databázových souborů
  • Archivace starých dat o výkonu pro zachování zvládnutelné velikosti souborů

Sledování výkonu při správné konfiguraci přidává minimální režijní zátěž, obvykle méně než 2 % systémových prostředků.

9.5 Dlouhodobé uchovávání dat

Uchovávejte data o výkonu pro smysluplnou analýzu trendů a plánování kapacity:

  • Uchovávejte údaje o výkonnosti za alespoň 1–2 roky
  • Archivujte data do samostatného úložiště po 3–6 měsících
  • Komprimujte starší soubory protokolů pro úsporu místa
  • Zdokumentujte všechny významné události nebo změny, které ovlivňují výkon

Vzhledem k relativně malé velikosti dat čítačů výkonu je jejich uchovávání po dobu neurčitou často proveditelné a cenné pro dlouhodobou analýzu.

9.6 Integrace s postupy DevOps

Začlenění monitorování výkonu databáze do CI/CD pipelines:

  • Zahrnout metriky výkonu databáze do ověření nasazení
  • Automatizujte testování výkonu pro nové verze
  • Ověřte, zda změny kódu nemají negativní vliv na výkon
  • Vytvořte výkonnostní benchmarky pro každou verzi
  • Integrace monitorovacích upozornění se systémy pro správu incidentů

10. Řešení běžných problémů s výkonem

10.1 Identifikace úzkých míst CPU

Úzká hrdla procesoru se projevují jako pomalá doba odezvy na dotazy a vysoké využití procesoru. K diagnostice problémů s procesorem použijte tyto kroky:

  1. Zkontrolujte čítač délky fronty procesoru. Hodnoty nad 2 na jádro značí zatížení procesoru.
  2. Zkontrolujte % využití procesoru. Trvalé hodnoty nad 75 % naznačují úzké hrdlo CPU.
  3. Vzdálená plocha k SQL Server
  4. Otevřít Správce úloh (Ctrl+Shift+Esc)
  5. Klepněte na tlačítko Procesy Karta
  6. Kontrola Zobrazit procesy od všech uživatelů
  7. Klepněte na tlačítko Procesor (CPU) záhlaví sloupce pro řazení podle využití CPU
  8. Identifikace procesů, které spotřebovávají prostředky CPU

Pokud ne-SQL Server Aplikace spotřebovávají značné množství CPU, odeberte je z databázového serveru. Pokud sqlservr.exe využívá vysoké CPU, prověřte to pomocí těchto metod:

  • Zkontrolujte počet kompilací SQL/s a počet opětovných kompilací SQL/s. Hodnoty nad 10 % počtu dávkových požadavků/s naznačují nadměrnou kompilaci.
  • Dotaz sys.dm_exec_query_stats pro identifikaci dotazů náročných na procesor
  • Kontrola plánů provádění, zda nechybí indexy nebo zda operace nejsou efektivní.
  • Zvažte přidání indexů pro snížení počtu prohledávání tabulek.

10.2 Diagnostika problémů s pamětí

Problémy s pamětí významně ovlivňují SQL Server výkon. Diagnostikujte problémy s pamětí pomocí těchto indikátorů:

Dostupné kapky paměti

Pokud počet dostupných MB trvale klesne pod 100 MB, operační systém čelí nedostatku paměti. Windows může docházet k stránkování. SQL Server paměti na disk, což způsobuje snížení výkonu.

Nízká očekávaná životnost stránky

Očekávaná životnost stránky pod 300 sekund indikuje vysokou míru obratu vyrovnávací paměti v mezipaměti. To naznačuje buď nedostatečnou alokaci paměti, nebo nadměrné zatížení paměti dotazy.

Nízký poměr zásahů do mezipaměti bufferu

Poměr zásahů do mezipaměti bufferu pod 99 % znamená SQL Server často čte data z disku, nikoli z paměti. K tomu dochází, když je vyrovnávací paměť příliš malá nebo SQL Server po restartu se stále zahřívá.

Čeká se na přidělení paměti

Jakákoli hodnota nad 0 pro Memory Grants Pending (Čekající na udělení paměti) znamená, že dotazy čekají na udělení paměti. To představuje kritický nedostatek paměti vyžadující okamžitou pozornost.

Řešení problémů s pamětí:

  1. Konfigurace SQL Server nastavení maximální paměti, aby operačnímu systému zůstalo dostatek paměti RAM (obvykle 4–8 GB v závislosti na velikosti serveru)
  2. Povolit oprávnění „Uzamknout stránky v paměti“ pro SQL Server servisní účet
  3. Pokud přetrvává tlak na paměť, přidejte na server více fyzické paměti RAM.
  4. Identifikace a optimalizace paměťově náročných dotazů

10.3 Řešení problémů s diskovými vstupně-výstupními operacemi

Diskové I/O operace se často stávají hlavním úzkým hrdlem výkonu v databázových systémech. Diagnostikujte problémy s disky pomocí těchto metod:

Vysoká délka fronty disku

Pokud je délka fronty disku trvale vyšší než 2 (nebo 2 na disk v případě RAID), znamená to, že diskový subsystém nedokáže zpracovat požadavky I/O. To vytváří nahromadění čekajících operací.

Nadměrná latence disku

Hodnoty průměrného času disku v sekundách/čtení a průměrného času disku v sekundách/zápis nad 10–20 ms naznačují pomalou odezvu disku. Jednotky protokolů transakcí vyžadují obzvláště rychlý výkon, ideálně pod 5 ms pro zápis.

Vysoké % času disku

Trvalý % diskového času nad 85 % indikuje nasycení disku. Disk tráví většinu času zpracováním I/O požadavků s malou zbývající volnou kapacitou.

Než se zaměříte na problémy s diskem, ověřte, zda se nejedná o příznaky problémů s pamětí. Nedostatečná paměť vynucuje SQL Server číst více dat z disku, čímž uměle nafukují metriky disku.

Řešení problémů s I/O na skutečném disku:

  • Přejděte na rychlejší disky (SSD místo HDD)
  • Implementace konfigurací RAID pro lepší výkon
  • Oddělte soubory databáze, transakční protokoly a dočasnou databázi na různých fyzických discích
  • Přidáním paměti se sníží počet čtení z disku
  • Optimalizace indexů pro snížení zbytečného I/O
  • Kontrola a optimalizace neefektivních dotazů

10.4 Řešení blokování a deadlocků

K blokování dochází, když jedna relace drží zámky, které brání v pokračování ostatních relací. Sledujte tyto čítače, abyste identifikovali problémy s blokováním:

  • Blokované procesy: V ideálním případě by mělo být 0
  • Čekání na uzamčení/s: Počet požadavků na uzamčení vyžadujících čekání
  • Průměrná doba čekání: Průměrná doba čekání na uzamčení

Prošetření blokování:

  1. Otevření Sledování aktivity v SSMS
  2. Rozbalte Procesy sekce
  3. Hledejte procesy s nenulovou hodnotou Blokováno uživatelem hodnoty
  4. Identifikujte ID blokující relace
  5. Zkontrolujte dotazy, které způsobují blokování

Pro podrobnější analýzu blokování použijte sp_WhoIsActive. Nadměrný počet položek wait_info často naznačuje konflikty v databázi tempdb nebo problémy s blokováním.

Pro snížení blokování:

  • Minimalizujte dobu trvání transakce
  • Používejte vhodné úrovně izolace
  • Přidání indexů pro zkrácení doby trvání uzamčení
  • Zvažte izolaci READ_COMMITTED_SNAPSHOT
  • Kontrola a optimalizace dlouhodobě běžících dotazů

10.5 Problémy s výkonem dotazů

Identifikace náročných dotazů je nezbytná pro monitorování výkonu SQL. K nalezení problematických dotazů použijte tyto metody:

Používání Monitoru aktivity

  1. V SSMS klikněte pravým tlačítkem myši na název serveru.
  2. vybrat Activity Monitor
  3. Rozšířit Nedávné drahé dotazy
  4. Kontrolní dotazy s vysokou náročností CPU, dobou trvání nebo logickým čtením

Používání DMV

Dotaz sys.dm_exec_query_stats pro identifikaci dotazů 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ánů

  1. V SSMS otevřete nové okno dotazu
  2. klikněte Zobrazit odhadovaný plán realizace (Ctrl+L) nebo Zahrnout skutečný plán provedení (Ctrl+M)
  3. Spusťte svůj dotaz
  4. Projděte si plán realizace nákladných operací
  5. Hledejte prohledávání tabulek, prohledávání indexů nebo nákladné operace

Optimalizujte dotazy podle:

  • Přidání vhodných indexů
  • Přepisování dotazů pro zamezení nákladných operací
  • Aktualizace statistik
  • Použití konkrétních názvů sloupců místo SELECT *
  • Vyhýbání se zbytečným klauzulím DISTINCT nebo ORDER BY

10.6 Detekce a oprava poškozené databáze

Poškození databáze může způsobit snížení výkonu, ztrátu dat a selhání systému. Rychlá detekce a řešení poškození je zásadní pro udržení stavu databáze.

Indikátory poškození databáze

Dávejte si pozor na tyto známky možné korupce:

  • Chybové zprávy v SQL Server protokol chyb (chyba 823, 824 nebo 825)
  • Neočekávané chyby aplikace při přístupu ke konkrétním tabulkám
  • Pomalý výkon dotazů u dříve rychlých dotazů
  • SQL Server pády nebo neočekávané restarty
  • Podezřelé stránky se zobrazují v tabulce msdb.dbo.suspect_pages

Použití DBCC CHECKDB pro detekci

DBCC CHECKDB je primárním nástrojem pro detekci poškození databáze. Pravidelně jej spusťte, abyste problémy odhalili včas.

Monitorování podezřelých stránek

SQL Server automaticky zaznamenává podezřelé stránky do databáze 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šechny vrácené řádky naznačují problémy s poškozením, které vyžadují okamžitou pozornost.

Strategie prevence korupce

  • Povolit ověření stránky pomocí možnosti CHECKSUM
  • Pravidelně udržujte zálohy databáze
  • Používejte spolehlivý hardware s korekcí chyb
  • Sledování stavu disku pomocí nástrojů výrobce
  • Naplánujte pravidelné spuštění DBCC CHECKDB
  • Udržet SQL Server aktualizováno s nejnovějšími záplatami

Možnosti obnovy a opravy

Pokud jsou zjištěny poškození, můžete vyzkoušet vestavěný nástroj DBCC CHECKDB k jejich opravě. Pokud se to nepodaří, použijte nástroje třetích stran, jako například DataNumen SQL Recovery který si dokáže poradit s vážnou korupcí.

11. Pokročilé monitorovací techniky

11.1 Monitorování úložiště dotazů

Úložiště dotazů, představené v SQL Server 2016 automaticky zaznamenává data o výkonu dotazů. Poskytuje cenné informace o chování dotazů, plánech provádění a trendech výkonu.

Povolení úložiště dotazů

  1. V Průzkumníku objektů SSMS klikněte pravým tlačítkem myši na databázi.
  2. vybrat Nemovitosti
  3. Klepněte na tlačítko Dotazový obchod strana
  4. In Provozní režim (požadovaný)vyberte Číst psát
  5. Nakonfigurujte další nastavení podle potřeby
  6. klikněte OK

Monitorování výkonu dotazů

Přístup k sestavám úložiště dotazů prostřednictvím Průzkumníka objektů:

  1. Rozbalení databáze v Průzkumníku objektů
  2. Rozšířit Dotazový obchod
  3. Vyberte z dostupných reportů:
    • Regresní dotazy
    • Celková spotřeba zdrojů
    • Nejčastější dotazy spotřebovávající zdroje
    • Dotazy s vynucenými plány
    • Sledované dotazy

Detekce regrese plánu

Úložiště dotazů automaticky detekuje změny v plánech provádění dotazů a snížení výkonu. Prohlédněte si sestavu Regresní dotazy a identifikujte dotazy ovlivněné změnami plánu.

Správa nuceného plánu

Když Query Store identifikuje lepší plán provedení, vynutí SQL Server použít ho:

  1. Otevřete dotaz v úložišti dotazů
  2. Klikněte pravým tlačítkem myši na požadovaný plán
  3. vybrat Plán sil

To okamžitě zlepšuje výkon bez nutnosti změn kódu.

11.2 Monitorování údržby indexů

Fragmentace indexů časem snižuje výkon dotazů. Pro zajištění optimálního výkonu pravidelně monitorujte a udržujte indexy.

Kontrola fragmentace

Pomocí tohoto dotazu zkontrolujte fragmentaci indexu:

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

Spusťte tento dotaz mimo špičku, protože může být náročný na zdroje.

Analýza hustoty stránek

Hustota stránek udává, jak plné jsou indexové stránky. Nízká hustota plýtvá místem a sniž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

Rozhodnutí o reorganizaci vs. přestavbě

Vyberte operace údržby indexu na základě úrovně fragmentace:

  • Fragmentace 10–30 %: Použijte ALTER INDEX REORGANIZE
  • Fragmentace > 30 %: Použijte ALTER INDEX REBUILD
  • Fragmentace < 10 %: Není třeba podnikat žádné kroky

Reorganizační operace vyžadují méně zdrojů a mohou probíhat online. Operace obnovy jsou důkladnější, ale spotřebovávají značné množství zdrojů.

11.3 Aktualizace statistik databáze

Nápověda ke statistikám databáze SQL ServerOptimalizátor dotazů vytváří efektivní plány provádění. Zastaralé statistiky vedou ke špatnému výkonu dotazů.

Automatické přestavování statistik

Povolit automatické aktualizace statistik:

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

Monitorování statistik zdraví

Zkontrolujte, kdy byly statistiky naposledy aktualizovány:

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

Ruční aktualizace statistik v případě potřeby:

UPDATE STATISTICS TableName WITH FULLSCAN

11.4 Shromažďování vlastních dat o výkonu

Vytvořte si vlastní řešení pro monitorování výkonu přímým dotazováním sys.dm_os_performance_counters a ukládáním výsledků do tabulek.

Vytváření vlastních skriptů pro kolekce

Vytvořte uloženou proceduru pro shromažďování dat čítačů 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žívání sys.dm_os_performance_counters

Přímé dotazování čítačů 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

Ukládání historických dat

Vytvořte tabulku pro ukládání metrik výkonu v čase:

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

Metody pivotního ukládání dat

Ukládejte data v pivotovaném formátu s jedním řádkem na čas vzorkování a jedním sloupcem na čítač. To snižuje úložný prostor a zlepšuje výkon dotazů ve srovnání s ukládáním jednoho řádku na čítač na vzorek.

11.5 Monitorování více serverů

Pro prostředí s více SQL Server instance, implementujte centralizovaný monitoring.

Centralizovaný přístup k monitorování

  • Vytvořte si vyhrazenou monitorovací databázi na samostatném serveru
  • Shromažďovat data ze všech serverů do centrálního úložiště
  • Použijte SQL Server Úlohy agenta pro spouštění skriptů pro shromažďování dat
  • Implementace sběru čítačů výkonu přístupných ze sítě

Vzdálené monitorování serveru

Nakonfigurujte Sledování výkonu tak, aby shromažďovalo data ze vzdálených serverů, a to zadáním názvů serverů při přidávání čítačů. Zajistěte, aby pravidla brány firewall povolovala provoz Sledování výkonu.

Reporting napříč servery

Vytvářejte reporty, které porovnávají výkon napříč více servery a identifikují tak odchylky a nerovnováhu kapacity.

12. Monitorování SQL Server v cloudových prostředích

12.1 Monitorování databáze Azure SQL

Databáze Azure SQL nabízí vestavěné funkce monitorování, které se liší od místních systémů. SQL Server.

Integrace Azure Monitoru

Azure Monitor automaticky shromažďuje metriky z databáze Azure SQL, včetně:

  • Využití DTU nebo vCore
  • Skladování použití
  • Statistiky připojení
  • Zablokování a časové limity

Přístup k těmto metrikám získáte prostřednictvím rozhraní Azure Portal nebo Azure Monitor API.

Vestavěné monitorovací funkce

Databáze Azure SQL zahrnuje:

  • Doporučení pro automatické ladění
  • Přehled výkonu dotazů
  • Inteligentní analýzy pro detekci anomálií
  • Vestavěné upozornění a diagnostika

Přehled výkonu dotazů

Tato funkce poskytuje vizualizaci dotazů s nejvyšší spotřebou zdrojů, analýzu trvání dotazů a historické trendy výkonu. Přístup k ní získáte prostřednictvím portálu Azure Portal v rámci svého prostředku SQL Database.

12.2 Cloudové nativní monitorovací nástroje

Cloudové platformy nabízejí nativní monitorovací řešení optimalizovaná pro jejich prostředí:

  • Azure Monitor a Application Insights pro databázi Azure SQL
  • AWS CloudWatch pro RDS SQL Server
  • Monitorování cloudu Google pro cloud SQL Server

Tyto nástroje se bezproblémově integrují s cloudovou infrastrukturou a poskytují jednotné monitorování napříč všemi cloudovými zdroji.

Monitorování hybridního prostředí

Pro hybridní nasazení zahrnující lokální i cloudové prostředí používejte nástroje, které podporují obě prostředí, jako je Redgate SQL Monitor, SolarWinds DPA, nebo vlastní řešení využívající centralizovaný sběr dat.

12.3 Rozdíly ve výkonu v cloudu

mrak SQL Server prostředí mají jedinečné vlastnosti:

Modely alokace zdrojů

Poskytovatelé cloudových služeb používají různé metody alokace zdrojů (DTU, vCores, bezserverové řešení), které ovlivňují interpretaci metrik výkonu. Pochopte omezení a charakteristiky vaší úrovně služeb.

Úvahy o škálování

Cloudová prostředí nabízejí možnosti dynamického škálování. Sledujte využití zdrojů a určete, kdy je třeba škálovat navýšit nebo snížit. Mnoho cloudových platforem nabízí automatické škálování na základě prahových hodnot výkonu.

13. Automatizace monitorování výkonu

13.1 SQL Server Práce agentů

Automatizujte sběr dat pomocí SQL Server Úlohy agentů pro konzistentní monitorování bez manuálního zásahu.

Plánovaný sběr dat

  1. V SSMS rozbalte SQL Server Činidlo
  2. Klepněte pravým tlačítkem myši Zaměstnání a zvolte Nová práce
  3. Pojmenujte úlohu (např. „Shromažďování metrik výkonu“)
  4. klikněte Kroky a přidat nový krok
  5. Nastavit typ na Skript Transact-SQL
  6. Zadejte skript pro sběr dat
  7. klikněte Jízdní řády a přidat rozvrh
  8. Nastavte frekvenci (např. každých 5 minut)
  9. klikněte OK vytvořit pracovní místo

Automatizovaný reporting

Vytvořte úlohy, které generují a odesílají e-mailem zaslané reporty o výkonu:

  1. Vytvořte uloženou proceduru, která generuje sestavy
  2. Použití Database Mail k odesílání reportů e-mailem
  3. Naplánujte spouštění úlohy denně nebo týdně

13.2 Automatizace PowerShellu

PowerShell poskytuje výkonné automatizační funkce pro SQL Server monitor výkonu.

Skripty pro shromažďování čítačů 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

Použití WMI ke shromažďování dat o výkonu ze vzdálených serverů:

$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é upozornění

Vytvořte skripty PowerShellu, které kontrolují metriky a odesílají upozornění při překročení prahových hodnot:

$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áření monitorovacích dashboardů

Vizualizujte data o výkonu pomocí interaktivních řídicích panelů pro lepší přehled.

Integrace Power BI

  1. Propojení Power BI s tabulkami s údaji o výkonu
  2. Vytvářejte vizualizace pro klíčové metriky
  3. Přidejte slicery pro časový rozsah a výběr serveru
  4. Publikování řídicích panelů do služby Power BI
  5. Konfigurace plánů automatické aktualizace

Vytváření dashboardů v reálném čase

Pomocí nástrojů jako Grafana nebo vlastních webových aplikací můžete vytvářet řídicí panely v reálném čase, které se přímo dotazují na DMV a čítače výkonu.

Vizualizace historických trendů

Vytvořte spojnicové grafy znázorňující trendy v čase pro:

  • Využití procesoru
  • Využití paměti
  • Disk I/O
  • Výkon dotazu
  • Počet připojení

14. Případové studie a praktické příklady

14.1 Případová studie: Řešení tlaku na paměť

Identifikace příznaků

Produkce SQL Server zaznamenával pomalé doby odezvy na dotazy během špičky. Uživatelé si stěžovali na časové limity aplikací a snížený výkon.

Protianalýza

Zveřejněná data Performance Monitoru:

  • Očekávaná životnost stránky klesla na 50 sekund (normální: >300)
  • Poměr zásahů do mezipaměti klesl na 85 % (normální: >99 %)
  • Hodnoty čekajících na udělení paměti se často zobrazovaly v hodnotách 5–10.
  • Počet čtení z fyzického disku za sekundu výrazně vzrostl

Kroky rozlišení

  1. Kontrolovány SQL Server nastavení maximální paměti – zjistil jsem, že je nastaveno na výchozí (neomezené)
  2. Porovnání celkové paměti serveru a paměti cílového serveru – ukázalo se značný rozdíl
  3. Maximální paměť serveru je nakonfigurována tak, aby pro operační systém zbývalo 8 GB.
  4. Povoleno oprávnění „Uzamknout stránky v paměti“ pro SQL Server servisní účet
  5. Na serveru bylo přidáno dalších 32 GB RAM
  6. Monitorovaný výkon po dobu jednoho týdne – Očekávaná životnost stránky se stabilizovala nad 500 sekundami

Výsledek: Doba odezvy na dotazy se zlepšila o 60 %, stížnosti uživatelů ustaly a výkon aplikace se vrátil k normálu.

14.2 Případová studie: Optimalizace výkonu CPU

Identifikace příznaků

A SQL Server Během pracovní doby trvale vykazoval využití CPU nad 90 %, což způsobovalo pomalý výkon aplikací a frustraci uživatelů.

Protianalýza

Monitorování výkonu odhalilo:

  • Průměrné využití procesoru v % bylo 92 % s častými výkyvy až do 100 %
  • Délka fronty procesoru trvale nad 4 (server měl 8 jader)
  • Počet kompilací SQL/s byl 25 % počtu dávkových požadavků/s (měl by být <10 %)
  • Rekompilace SQL/s byly 15 % dávkových požadavků/s

Kroky rozlišení

  1. Použity DMV k identifikaci dotazů s nejvyšší spotřebou CPU
  2. Analyzované plány provedení pro identifikované dotazy
  3. Objeveno vícenásobné skenování velkých tabulek kvůli chybějícím indexům.
  4. Vytvořil vhodné indexy na základě doporučení z plánu realizace
  5. Identifikován dynamický SQL kód způsobující nadměrné kompilace.
  6. Upravený kód aplikace pro použití parametrizovaných dotazů
  7. Implementovaný plánovací průvodce pro problematické uložené procedury
  8. Aktualizované statistiky o často používaných tabulkách

Výsledek: Využití CPU kleslo během pracovní doby na průměrných 45 %. Doba provádění dotazů se zkrátila o 70 %. Výrazně se zlepšila i odezva aplikací.

14.3 Případová studie: Řešení úzkých míst v I/O operacích na disku

Identifikace příznaků

Uživatelé hlásili extrémně pomalou odezvu aplikace během načítání dat a večerního dávkového zpracování.

Protianalýza

Údaje o výkonu ukázaly:

  • Průměrný čas zápisu na disku v sekundách překročil 45 ms na disku s protokolem transakcí.
  • Průměrná délka fronty disku na datové jednotce je 12
  • % času na disku zůstalo nad 95 % po dobu několika hodin během dávkových úloh
  • Počet zápisů stránek/s byl mimořádně vysoký

Kroky rozlišení

  1. Ověřená nastavení paměti byla správná – nebyly zjištěny žádné problémy s pamětí.
  2. Analyzována konfigurace disku – nalezeny všechny soubory na stejné sadě vřeten
  3. Oddělené transakční protokoly na vyhrazené rychlé SSD disky
  4. Přesunuta tempdb na samostatné SSD disky
  5. Implementováno více datových souborů tempdb (jeden na jádro)
  6. Upgradované datové disky na konfiguraci SSD RAID 10
  7. Optimalizované dávkové úlohy pro použití menších transakčních dávek
  8. Přidány indexy pro snížení zbytečného prohledávání tabulek během dávkových operací

Výsledek: Průměrná doba zápisu na disk (s) klesla na 3 ms. Průměrná délka fronty disku byla pod 1. Doba dokončení dávkové úlohy se zkrátila o 75 %.

15. Budoucí trendy v SQL Server monitorování

15.1 Integrace umělé inteligence a strojového učení

Umělá inteligence a strojové učení se transformují SQL Server monitor výkonu.

Prediktivní analýza

Modely strojového učení předpovídají budoucí potřeby zdrojů na základě historických dat. Tyto systémy dokáží předpovídat:

  • Kdy bude úložná kapacita vyčerpána
  • Očekávané požadavky na CPU a paměť během špičky
  • Snížení výkonu dotazů dříve, než to ovlivní uživatele
  • Optimální časy pro údržbářské práce

Detekce anomálií

Nástroje založené na umělé inteligenci automaticky detekují neobvyklé vzorce v metrikách výkonu. Identifikují anomálie, které by lidští administrátoři mohli přehlédnout, a rozlišují mezi běžnými odchylkami a skutečnými problémy.

Automatická náprava

Samoopravné systémy automaticky řeší běžné problémy, když jsou detekovány:

  • Restartujte služby, které byly zastaveny
  • Přerozdělení zdrojů během špičkového zatížení
  • Použití oprav hotfixů pro známé problémy
  • Automatické obnovení fragmentovaných indexů

15.2 Vývoj cloudového monitorování

Monitorování cloudu se neustále vyvíjí s novými možnostmi.

Sjednocené monitorovací platformy

Moderní platformy poskytují viditelnost přes jedno skleněné dno na:

  • Místní SQL Server instance
  • Databáze hostované v cloudu
  • Hybridní prostředí
  • Výkon aplikace
  • Metriky infrastruktury

Trendy pozorovatelnosti

Posun od monitorování k pozorovatelnosti zdůrazňuje:

  • Pochopení chování systému z výstupů
  • Korelace metrik, protokolů a trasování
  • Hluboký vhled do distribuovaných systémů
  • Diagnostika problémů v reálném čase

15.3 Samoopravitelné databázové systémy

Budoucnost SQL Server verze budou zahrnovat více autonomních funkcí.

Automatická optimalizace

Databáze se budou průběžně optimalizovat pomocí:

  • Automatické vytváření a rušení indexů na základě pracovní zátěže
  • Úprava nastavení konfigurace pro optimální výkon
  • Transparentní přepisování neefektivních dotazů
  • Dynamická správa alokace zdrojů

Inteligentní ladění

Pokročilé systémy se budou učit z výkonnostních vzorců a automaticky aplikovat doporučení pro ladění, čímž se sníží potřeba ručního zásahu správce databáze.

16. Závěr a klíčové poznatky

16.1 Shrnutí základních monitorovacích postupů

Efektivní SQL Server Monitor výkonu vyžaduje komplexní přístup kombinující nástroje, techniky a osvědčené postupy.

Shrnutí kritických čítačů

Zaměřte monitorovací úsilí na tyto základní čítače:

  • Paměť: Očekávaná životnost stránky, poměr přístupů do mezipaměti vyrovnávací paměti, čekající na udělení paměťových grantů
  • CPU: % procesorový čas, délka fronty procesoru
  • Disk: Průměrný počet sekund disku/čtení a zápis, délka fronty disku
  • SQL ServerDávkové požadavky/s, Kompilace/s, Uživatelská připojení

Shrnutí osvědčených postupů

  • Stanovení základních hodnot během běžného provozu
  • Nastavení inteligentních prahových hodnot upozornění na základě základních hodnot
  • Pravidelně kontrolujte údaje o výkonu
  • Režijní náklady na monitorování zůstatků s granularitou dat
  • Uchovávejte dlouhodobá data pro analýzu trendů
  • Pro každý scénář monitorování používejte vhodné nástroje

16.2 Přístup neustálého zlepšování

SQL Server Monitorování výkonu není jednorázová činnost, ale průběžný proces vyžadující neustálé zdokonalování.

Pravidelné kontrolní cykly

  • Denně: Kontrola upozornění a aktuálního výkonu
  • Týdenní: Prozkoumejte trendy a identifikujte vznikající problémy
  • Měsíčně: Analyzujte dlouhodobé vzorce a kapacitní potřeby
  • Čtvrtletně: Aktualizace výchozích hodnot a kontrola účinnosti monitorování

Udržujte si přehled o nástrojích

Udržujte nástroje a techniky monitorování aktuální:

  • Vyhodnoťte nové monitorovací funkce v SQL Server aktualizace
  • Testování nově vznikajících nástrojů třetích stran
  • Účastněte se školení a konferencí
  • Účastnit SQL Server Společenství
  • Sdílejte znalosti s členy týmu

16.3 Další kroky

Nářadí SQL Server systematicky sledovat výkon:

Plán implementace

  1. Týden 1: Nastavení sledování výkonu se základními čítači
  2. Týden 2: Vytvořte sady sběračů dat pro automatizovaný sběr
  3. Týden 3: Stanovení základních hodnot během běžného provozu
  4. Týden 4: Konfigurace upozornění pro kritické prahové hodnoty
  5. Měsíc 2: Implementujte další monitorovací nástroje (DMV, rozšířené události)
  6. Měsíc 3: Vytvářejte vlastní dashboardy a reporty
  7. Pokračující: Zpřesněte monitorování na základě zkušeností a měnících se požadavků

Další zdroje

Pokračujte v učení o SQL Server Sledujte výkon prostřednictvím dokumentace společnosti Microsoft, komunitních blogů a praktických cvičení. Experimentujte s různými nástroji a technikami, abyste zjistili, co nejlépe funguje pro vaše prostředí.

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

17.1 Co je nejdůležitější SQL Server čítače výkonu, které je třeba sledovat?

Nejkritičtější SQL Server Mezi čítače výkonu patří:

  • Paměť: Očekávaná životnost stránky (měla by být >300 sekund) a poměr zásahů do mezipaměti vyrovnávací paměti (měla by být >99 %)
  • CPU: % procesorového času (trvalé hodnoty <75 %) a délka fronty procesoru (měla by být <2 na jádro)
  • Disk: Průměrná doba čtení a zápisu na disku v sekundách (měla by být <10–20 ms) a délka fronty disku (měla by být <2 na disk)
  • SQL ServerDávkové požadavky/s, kompilace SQL/s a čekající paměťové granty (mělo by být 0)

Tyto čítače poskytují komplexní přehled o stavu systému a pomáhají rychle identifikovat úzká hrdla.

17.2 Jak často bych měl/a shromažďovat údaje o výkonnosti?

Četnost sběru dat závisí na vašich cílech monitorování:

  • Monitorování základních hodnot: Každou 1 minutu (60 sekund)
  • Aktivní odstraňování problémů: Každých 15–30 sekund po krátkou dobu
  • Dlouhodobý trend: Každých 5 minut

Nespouštějte sběr dat s vysokou frekvencí nepřetržitě, protože to může ovlivnit výkon a generovat nadměrné množství dat. Delší intervaly používejte pro rutinní monitorování a kratší intervaly pouze při zkoumání specifických problémů.

17.3 Jaký je rozdíl mezi Monitorem výkonu a SQL Server Profiler?

Monitor výkonu a SQL Server Profilery slouží různým účelům:

Performance Monitor:

  • Monitoruje systém a SQL Server čítače výkonu
  • Sleduje využití zdrojů (CPU, paměť, disk)
  • Nízké režijní náklady, vhodné pro nepřetržité monitorování
  • Poskytuje agregované metriky v průběhu času

SQL Server profilovač:

  • Stopy jednotlivce SQL Server události a dotazy
  • Zachycuje podrobné informace o provádění dotazů
  • Vyšší režie, nedoporučuje se pro nepřetržitý provoz
  • Nejlepší pro řešení problémů se specifickými dotazy
  • Zastaralé ve prospěch rozšířených událostí

Pro celkové monitorování systému použijte nástroj Performance Monitor a pro podrobnou analýzu na úrovni dotazů nástroj Extended Events (ne Profiler).

17.4 Dopad monitoru výkonu Can SQL Server výkon?

Při správné konfiguraci má Monitor výkonu minimální dopad na SQL Server výkon, obvykle méně než 2 % režijních nákladů. Nadměrné monitorování však může způsobit problémy:

  • Příliš mnoho čítačů zvyšuje režijní náklady
  • Velmi krátké intervaly vzorkování (méně než 15 sekund) zatěžují zdroje
  • Nepřetržitý sběr dat s vysokou frekvencí generuje velké soubory protokolů

Pro minimalizaci dopadu:

  • Sledujte pouze nezbytné čítače
  • Používejte vhodné intervaly vzorkování (60 sekund pro rutinní monitorování)
  • Ukládejte protokoly na disky odděleně od databázových souborů
  • Naplánujte monitorování náročné na zdroje mimo špičku

17.5 Jak dlouho bych měl/a uchovávat data monitorování výkonu?

Uchovávání závisí na vašich analytických potřebách a úložné kapacitě:

  • Minimální: 3 měsíce na řešení nedávných problémů
  • Doporučená: 1–2 roky na plánování kapacity a analýzu trendů
  • Optimální: Neomezeně dlouho, pokud to úložiště dovolí, protože historická data se časem stávají cennějšími.

Data čítačů výkonu se dobře komprimují a spotřebovávají relativně málo místa. Zvažte archivaci starších dat do samostatného úložiště, nikoli jejich mazání. Mnoho organizací zjišťuje, že roky historických dat se ukazují jako neocenitelné pro plánování kapacity a identifikaci dlouhodobých trendů.

17.6 Jaké jsou vhodné prahové hodnoty pro klíčové čítače výkonu?

Doporučené prahové hodnoty pro upozornění:

  • Udělení paměti čeká na vyřízení: Upozornění, když > 0
  • Životnost stránky: Upozornění při < 300 sekundách
  • % Doba procesoru: Upozornění při > 80 % po dobu 5 minut
  • Délka fronty procesoru: Upozornění při > 2 na jádro
  • Průměrný čas disku (s)/čtení nebo zápis: Upozornění při > 20 ms
  • Délka fronty disku: Upozornění, když je na disk více než 2
  • Blokované procesy: Upozornit, když > 5

Upravte tyto prahové hodnoty na základě vašich základních dat a specifických charakteristik pracovní zátěže. Co je v jednom prostředí normální, může v jiném naznačovat problémy.

17.7 Jak mohu monitorovat SQL Server výkon na dálku?

Dálkový monitor SQL Server případy s použitím těchto metod:

  1. Performance Monitor: Při přidávání čítačů zadejte název vzdáleného počítače.
  2. PowerShell: Použití parametru -ComputerName s Get-Counter
  3. DMV: Připojení ke vzdáleným serverům prostřednictvím SSMS a dotazování DMV
  4. Nástroje třetích stran: Většina monitorovacích nástrojů podporuje vzdálené monitorování serverů

Ujistěte se, že pravidla firewallu povolují provoz nástroje Performance Monitor a že máte příslušná oprávnění na vzdáleném serveru. V případě více serverů zvažte implementaci centralizovaného monitorování s vyhrazeným monitorovacím serverem a databází.

17.8 Jaký je nejlepší bezplatný nástroj pro SQL Server monitor výkonu?

Pro monitorování je k dispozici několik vynikajících bezplatných nástrojů SQL Server výkon:

  • Sledování výkonu systému Windows: Vestavěný, komplexní a spolehlivý
  • Monitor aktivit SSMS: Monitorování v reálném čase bez nutnosti další instalace
  • Rozšířené události: Vestavěné odlehčené monitorování událostí SQL Server
  • sp_Kdo je aktivní: Oblíbená bezplatná uložená procedura pro detailní sledování aktivit
  • Dash databáze: Open-source monitorovací nástroj s komplexními funkcemi
  • SQLWATCH: Open source s možnostmi monitorování téměř v reálném čase

Pro většinu organizací poskytuje Performance Monitor v kombinaci s nástroji SSMS a sp_WhoIsActive vynikající možnosti monitorování bez dalších nákladů.

17.9 Jak exportuji data PerfMonu pro analýzu?

Exportujte data Monitoru výkonu pomocí těchto metod:

Exportovat do CSV:

  1. Otevřete Sledování výkonu s načteným souborem protokolu
  2. Klikněte pravým tlačítkem myši na graf a vyberte Uložit data jako
  3. Vybrat Textový soubor (oddělený čárkami) (.csv)
  4. Vyberte umístění a uložte
  5. Otevřít v Excelu pro analýzu

Použijte příkaz Relog:

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

Tento nástroj příkazového řádku převádí binární soubory protokolů (.blg) do formátu CSV pro snazší analýzu v tabulkových aplikacích.

17.10 Kdy bych měl/a místo vestavěných možností použít monitorovací nástroje třetích stran?

Zvažte nástroje třetích stran, když:

  • Správa velkého množství SQL Server instance (10+)
  • Vyžaduje centralizovaný monitoring napříč více datovými centry
  • Potřeba pokročilých funkcí, jako je prediktivní analýza nebo detekce anomálií
  • Chtějí integrované upozornění se systémy pro správu incidentů
  • Požadavek na podávání zpráv o shodě s předpisy a historickou analýzu
  • Nedostatek zdrojů správce databází pro vytváření a údržbu vlastních řešení
  • Monitorování heterogenních databázových prostředí (SQL Server, Oracle, MySQL atd.)

Vestavěné nástroje fungují dobře v menších prostředích nebo když máte zkušené správce databází, kteří dokáží vyvinout vlastní monitorovací řešení. Nástroje třetích stran poskytují hodnotu díky úsporám času, pokročilým funkcím a profesionální podpoře.

18. Další zdroje

18.1 Oficiální dokumentace

Společnost Microsoft poskytuje rozsáhlou dokumentaci k SQL Server monitor výkonu:

18.2 Doporučené nástroje a soubory ke stažení

Nezbytné nástroje pro SQL Server monitor výkonu:

  • Nástroj PAL: https://github.com/clinthuffman/PAL
  • sp_Kdo je aktivní: http://whoisactive.com/
  • Dash databáze: https://dbadash.com/
  • SQLWATCH: https://github.com/marcingminski/sqlwatch
  • Sada pro záchranáře (Brent Ozar): https://www.brentozar.com/first-aid/
  • SQL Server Management Studio: https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

18.3 Zdroje komunity

Poučit se z SQL Server společenství:

  • SQL Server Centrální: https://www.sqlservercentral.com/
  • Blog Brenta Ozara: https://www.brentozar.com/blog/
  • SQL chatka: https://www.sqlshack.com/
  • Tipy pro MSSQL: https://www.mssqltips.com/
  • Reddit r/SQLServer: https://www.reddit.com/r/SQLServer/
  • přetečení zásobníku SQL Server tag: https://stackoverflow.com/questions/tagged/sql-server

Tyto zdroje poskytují návody, rady pro řešení problémů a osvědčené postupy od zkušených SQL Server profesionálové. Účast na komunitních fórech vám pomáhá učit se ze zkušeností ostatních a sdílet vlastní znalosti.


O autorovi

Yuan Sheng je seniorní správce databází (DBA) s více než 10 lety zkušeností v SQL Server prostředí a správu podnikových databází. Úspěšně vyřešil stovky scénářů obnovy databází ve finančních službách, zdravotnictví a výrobních organizacích.

Yuan se specializuje na SQL Server obnova databáze, řešení s vysokou dostupnostía optimalizaci výkonu. Jeho rozsáhlé praktické zkušenosti zahrnují správu databází o objemu více terabajtů, implementaci Vždy dostupné skupiny dostupnostia vývoj automatizovaných strategií zálohování a obnovy pro kritické obchodní systémy.

Díky svým technickým znalostem a praktickému přístupu se Yuan zaměřuje na vytváření komplexních průvodců, které pomáhají správcům databází a IT profesionálům řešit složité SQL Server efektivně zvládá výzvy. Udržuje si přehled o nejnovějších SQL Server vydání a vyvíjející se databázové technologie společnosti Microsoft a pravidelně testuje scénáře obnovy, aby zajistil, že jeho doporučení odrážejí osvědčené postupy z reálného světa.

Máte otázky ohledně SQL Server potřebujete další pokyny k odstraňování problémů s databází? Yuan vítá zpětnou vazbu a návrhy pro vylepšení těchto technických zdrojů.

Sdílej nyní: