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.
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:
- kliknite Start, typ perfmon Vo vyhľadávacom poli kliknite vo výsledku vyhľadávania na položku „Monitorovanie výkonu“:
- Pre médiá Windows + R, typ perfmona stlačte tlačidlo vstúpiť
- prejdite na riadiace panel -> Systém a zabezpečenie -> nástroje pre správu -> sledovanie 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:
- Otvoriť Monitor výkonu
- Rozšíriť Sady zberačov údajov
- Kliknite pravým tlačidlom myši Definované užívateľom
- vybrať Nový -> Súprava zberača údajov
- Zadajte popisný názov (napr. „SQL Server „Metriky výkonnosti“)
- vybrať Vytvoriť manuálne (pokročilé)
- kliknite ďalšie
- Kontrola Vytvoriť protokoly údajov -> Počítadlo výkonu
- kliknite ďalšie
- kliknite pridať vybrať počítadlá
- pridať požadovanú SQL Server a systémové počítadlá.
- 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.
- kliknite ďalšie
- Vyberte umiestnenie na uloženie protokolov
- kliknite úprava, vytvorí sa nová sada zberačov údajov.
- 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
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:
- Po vytvorení sady zberačov údajov na ňu kliknite pravým tlačidlom myši a vyberte vlastnosti
- Kliknite na tlačidlo Stav zastavenia pútko
- Umožniť Celkové trvanie
- Nastaviť trvanie na 1 deň (24 hodín)
- kliknite OK ušetriť
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:
- Kliknite pravým tlačidlom myši na svoju sadu zberačov údajov a vyberte vlastnosti
- Kliknite na tlačidlo Naplánovať pútko
- kliknite pridať vytvoriť nový rozvrh
- Konfigurovať stardátum a čas
- Nastaviť vzorec opakovania (napr. denne)
- kliknite OK uložiť rozvrh
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:
- Otvoriť Monitor výkonu
- Rozšíriť Výstrahy a protokolovanie výkonu v ľavom paneli
- Kliknite pravým tlačidlom myši Záznamy počítadla
- vybrať Nové nastavenia protokolu
- Pomenujte protokol názvom vášho databázového servera (napr. „ProductionSQL01“)
- 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ť:
- Kliknite na tlačidlo Pridať počítadlá gombík
- Zmeňte názov počítača tak, aby odkazoval na váš SQL Server inštancie
- Pre médiá Tab načítať dostupné objekty výkonu
- Vyberte výkonnostný objekt z rozbaľovacej ponuky (napr. Memory Masážne stoly)
- Vyberte konkrétne počítadlá z zoznam
- Vyberte prípady, ak je to relevantnécab(napr. jednotlivé procesory alebo disky)
- kliknite pridať zahrnúť počítadlo
- Opakujte pre všetky požadované počítadlá
- 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:
- Vo vlastnostiach protokolu počítadla vyhľadajte Vzorky údajov každých
- Nastavenie intervalu (predvolená hodnota je 15 sekúnd)
- Pre monitorovanie základnej línie používajte 1-minútové intervaly pre denný zber
- Pri riešení problémov používajte 15-30 sekundové intervaly pre krátke dávky
- 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:
- Kliknite na tlačidlo Súbory protokolu karta vo vlastnostiach protokolu počítadla
- Zmeniť typ súboru denníka na Textový súbor (oddelený čiarkou) pre jednoduchý import z Excelu
- kliknite Konfigurácia
- Nastavte cestu k súboru na vyhradené miesto (napr. zdieľaný priečinok PerformanceLogs)
- 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:
- Vo vlastnostiach protokolu počítadla vyhľadajte Spustiť ako
- Zadajte používateľské meno vašej domény vo formáte: DOMÉNA\používateľské meno
- kliknite Nastaviť heslo
- Zadajte a potvrďte svoje heslo
- 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:
- Otvoriť Monitor výkonu
- Na ľavom paneli kliknite na Monitorovacie nástroje -> sledovanie výkonu.
- Kliknite pravým tlačidlom myši kdekoľvek v oblasti grafu
- vybrať vlastnosti
- Kliknite na tlačidlo zdroj pútko
- vybrať Súbory denníka tlačítko na Rádiu
- kliknite pridať
- Prejdite do súboru denníka (.blg alebo .csv)
- Vyberte súbor a kliknite Otvorený
- Použi Časové rozpätie posuvníkom vyberte obdobie, ktoré chcete analyzovať
- kliknite OK zatvorte dialógové okno Vlastnosti
- Kliknite na zelenú ikonu plus a pridajte počítadlá zo súboru denníka
- Vyberte požadované počítadlá, ktoré chcete zobraziť
- 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:
- Otvorte Monitor výkonu s načítaným súborom denníka
- Kliknite pravým tlačidlom myši kdekoľvek v oblasti grafu
- vybrať Uložiť údaje ako
- Vyberte umiestnenie pre súbor
- vybrať Textový súbor (oddelený čiarkou) (.csv) z rozbaľovacej ponuky
- kliknite ušetríte
- Otvorte súbor CSV v Exceli
Pre lepšiu analýzu naformátujte exportované údaje:
- Odstráňte poloprázdny riadok 2 a vymažte bunku A1
- Formátovať stĺpec A ako dátum/čas
- Formátovať číselné stĺpce s nulovými desatinnými miestami a oddeľovačom tisícok
- Vyhľadanie a nahradenie názvov serverov v hlavičkách (napr. nahradenie „\\NÁZOVSERVERA“ prázdnym textom)
- Vyčistite názvy objektov v hlavičkách (napr. „Pamäť“, „Fyzický disk“, „Procesor“)
- 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:
- Vložte 7 prázdnych riadkov na začiatok tabuľky
- Pridajte štítky do stĺpca A: Priemer, Medián, Min, Max, Štandardná odchýlka
- Do bunky B2 zadajte: =AVERAGE(B9:B100) (upravte B100 na posledný riadok s údajmi)
- Do bunky B3 zadajte: =MEDIAN(B9:B100)
- Do bunky B4 zadajte: =MIN(B9:B100)
- Do bunky B5 zadajte: =MAX(B9:B100)
- Do bunky B6 zadajte: =STDEV(B9:B100)
- Skopírujte vzorce do všetkých stĺpcov počítadla
- 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
7.2 Nastavenie PALu
Nainštalujte PAL podľa týchto krokov:
- Stiahnite si inštalačný súbor PAL z GitHubu
- Spustite inštalátor
- kliknite ďalšie na úvodnej obrazovke
- Skontrolujte a akceptujte inštalačný adresár
- kliknite ďalšie pokračovať
- kliknite inštalovať začať inštaláciu
- Počkajte na dokončenie inštalácie
- kliknite úprava
7.3 Spracovanie súborov denníka pomocou PAL
Analyzujte protokoly monitora výkonu pomocou protokolu PAL:
- Spustite PAL z Start menu alebo inštalačný adresár
- Kliknite na tlačidlo Záznam počítadla pútko
- kliknite prezerať vyberte súbor .blg
- Prejdite do súboru denníka Monitora výkonu
- kliknite Otvorený
- Kliknite na tlačidlo Súbor s prahovými hodnotami pútko
- Vyberte súbor s prahovou hodnotou z rozbaľovacej ponuky (napr. „SQL Server 2016 ")
- Kliknite na tlačidlo otázky pútko
- Odpovedzte na otázky týkajúce sa konfigurácie vášho systému
- Uveďte, či vaše SQL Server je OLTP alebo dátový sklad
- Zadajte celkovú dostupnú RAM
- Kliknite na tlačidlo Možnosti výstupu pútko
- Vyberte výstupný adresár pre HTML správu
- Kontrola HTML výstupný formát
- Kliknite na tlačidlo Vykonať pútko
- Skontrolujte si svoj výber
- Kontrola Start poprava teraz
- 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:
- Otvorený SQL Server Management Studio (SSMS) a pripojenie k inštancii servera
- Kliknite pravým tlačidlom myši na názov servera v Prieskumníkovi objektov
- vybrať Activity Monitor
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.
8.1.2 SQL Server Panel výkonu
SQL Server Management Studio obsahuje vstavané prehľady výkonnosti:
- In SQL Server Management Studio (SSMS), kliknite pravým tlačidlom myši na SQL Server inštancia v Prieskumníkovi objektov
- vybrať Správy -> Štandardné správy
- Vyberte si z dostupných prehľadov, ako napríklad Panel výkonu
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.
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č:
- In SQL Server Management Studio, kliknite náradie -> SQL Server Profiler
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.
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:
- In Prieskumník objektov, rozšírte svoj server a prejdite na Správa -> Rozšírené udalosti -> Relácie
- Kliknite pravým tlačidlom myši na ikonu Sessions A vyberte Sprievodca novou reláciou
- 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.
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.
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.
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.
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:
- Zber údajov o výkonnosti počas bežnej prevádzky po dobu najmenej jedného týždňa
- Zaznamenávanie metrík počas špičky aj mimo špičky
- Dokumentovanie typických hodnôt pre počítadlá kľúčov
- Zaznamenávanie sezónnych výkyvov, ak je to relevantnécable
- 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:
- Skontrolujte počítadlo dĺžky frontu procesora. Hodnoty nad 2 na jadro naznačujú zaťaženie procesora.
- Skontrolujte percentuálny čas procesora. Trvalé hodnoty nad 75 % naznačujú úzke hrdlo CPU.
- Vzdialená pracovná plocha k SQL Server
- Otvoriť Správcu úloh (Ctrl+Shift+Esc)
- Kliknite na tlačidlo procesy pútko
- Kontrola Zobraziť procesy od všetkých používateľov
- Kliknite na tlačidlo CPU hlavička stĺpca na zoradenie podľa využitia CPU
- 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:
- 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)
- Povoliť povolenie „Uzamknúť stránky v pamäti“ pre SQL Server servisný účet
- Ak pretrváva tlak na pamäť, pridajte na server viac fyzickej pamäte RAM.
- 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:
- Otvorte Monitor aktivity v SSMS
- rozbaľte procesy časť
- Hľadajte procesy s nenulovou hodnotou Zablokované používateľom hodnoty
- Identifikujte ID blokujúcej relácie
- 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
- V systéme SSMS kliknite pravým tlačidlom myši na názov servera.
- vybrať Activity Monitor
- Rozšíriť Nedávne drahé dopyty
- 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
- V SSMS otvorte nové okno dotazu
- kliknite Zobraziť odhadovaný plán realizácie (Ctrl+L) alebo Zahrnúť skutočný plán realizácie (Ctrl+M)
- Vykonajte svoj dopyt
- Preskúmajte plán realizácie nákladných operácií
- 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
- V Prieskumníkovi objektov SSMS kliknite pravým tlačidlom myši na databázu
- vybrať vlastnosti
- Kliknite na tlačidlo Dotazový obchod strana
- In Prevádzkový režim (požadovaný)vyberte Čítaj píš
- Podľa potreby nakonfigurujte ďalšie nastavenia
- kliknite OK
Monitorovanie výkonu dotazov
Prístup k zostavám úložiska dotazov prostredníctvom Prieskumníka objektov:
- Rozšírenie databázy v Prieskumníkovi objektov
- Rozšíriť Dotazový obchod
- 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:
- Otvorte dotaz v úložisku dotazov
- Kliknite pravým tlačidlom myši na požadovaný plán
- 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
- V systéme SSMS rozbaľte SQL Server Činidlo
- Kliknite pravým tlačidlom myši jobs a zvoľte Nová práca
- Pomenujte úlohu (napr. „Zhromažďovanie metrík výkonnosti“)
- kliknite Kroky a pridajte nový krok
- Nastaviť typ na Skript Transact-SQL
- Zadajte skript zberu údajov
- kliknite Cestovné poriadky a pridajte rozvrh
- Nakonfigurujte frekvenciu (napr. každých 5 minút)
- kliknite OK vytvoriť pracovnú pozíciu
Automatizovaný reporting
Vytvorte úlohy, ktoré generujú a posielajú správy o výkonnosti e-mailom:
- Vytvorte uloženú procedúru, ktorá generuje zostavy
- Používanie databázovej pošty na odosielanie správ e-mailom
- 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
- Prepojenie služby Power BI s tabuľkami údajov o výkonnosti
- Vytvárajte vizualizácie pre kľúčové metriky
- Pridajte filtre pre časový rozsah a výber servera
- Publikovanie dashboardov do služby Power BI
- 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
- kontrolované SQL Server maximálne nastavenie pamäte – zistil som, že je nastavené na predvolenú hodnotu (neobmedzené)
- Porovnanie celkovej pamäte servera vs. Tarzískať pamäť servera – vykazovala značnú medzeru
- Maximálna pamäť servera bola nakonfigurovaná tak, aby pre operačný systém zostalo 8 GB.
- Povolené povolenie „Uzamknúť stránky v pamäti“ pre SQL Server servisný účet
- Na server pridaných 32 GB RAM
- 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
- Použité DMV na identifikáciu najnáročnejších dotazov na CPU
- Analyzované plány vykonávania pre identifikované dotazy
- Zistené viacnásobné skenovania tabuliek vo veľkých tabuľkách kvôli chýbajúcim indexom
- Vytvoril vhodné indexy na základe odporúčaní z plánu vykonávania
- Identifikované dynamické SQL kódy spôsobujúce nadmerné množstvo kompilácií
- Upravený kód aplikácie na použitie parametrizovaných dotazov
- Implementovaný plánovací sprievodca pre problematické uložené procedúry
- 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
- Overené nastavenia pamäte boli správne – nezistili sa žiadne problémy s pamäťou
- Analyzovaná konfigurácia disku – nájdené všetky súbory na rovnakej sade vretena
- Oddelené protokoly transakcií na vyhradené rýchle SSD disky
- Presunutie tempdb na samostatné SSD disky
- Implementovaných viacero súborov s dočasnými databázami (jeden na jadro)
- Upgradované dátové disky na konfiguráciu SSD RAID 10
- Optimalizované dávkové úlohy na použitie menších dávok transakcií
- 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
- Týždeň 1: Nastavenie monitora výkonu so základnými počítadlami
- Týždeň 2: Vytvorenie sád zberačov údajov pre automatizovaný zber
- Týždeň 3: Stanovenie základných hodnôt počas bežnej prevádzky
- Týždeň 4: Konfigurácia upozornení pre kritické prahy
- Mesiac 2: Implementujte ďalšie monitorovacie nástroje (DMV, rozšírené udalosti)
- Mesiac 3: Vyvíjajte vlastné dashboardy a reporty
- 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:
- Performance Monitor: Pri pridávaní počítadiel zadajte názov vzdialeného počítača
- PowerShell: Použitie parametra -ComputerName s Get-Counter
- DMV: Pripojte sa k vzdialeným serverom prostredníctvom SSMS a vykonajte dotazy na DMV
- 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:
- Otvorte Monitor výkonu s načítaným súborom denníka
- Kliknite pravým tlačidlom myši na graf a vyberte Uložiť údaje ako
- Vybrať Textový súbor (oddelený čiarkou) (.csv)
- Vyberte miesto a uložte
- 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:
- SQL Server Dokumentácia k monitoru výkonu: https://learn.microsoft.com/en-us/sql/relational-databases/performance-monitor/
- Dynamické zobrazenia správy: https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/
- Rozšírené udalosti: https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/
- Dotazový obchod: https://learn.microsoft.com/en-us/sql/relational-databases/performance/monitoring-performance-by-using-the-query-store
- Ladenie a monitorovanie výkonu: https://learn.microsoft.com/en-us/sql/relational-databases/performance/
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.





























