1. Úvod
1.1 Čo je SQL Server Monitor aktivity?
SQL Server Monitor aktivity je vstavaný diagnostický nástrojostnástroj ic vo vnútri SQL Server Management Studio, ktoré zobrazuje informácie o SQL Server procesy a ich vplyv na výkon servera. Umožňuje vám sledovať SQL Server procesy, monitorovať čakanie na zdroje, analyzovať náročné dotazy a pozorovať vstupno-výstupné vzorce – to všetko z jedného rozhrania.
1.2 Prečo používať SQL Server Monitor aktivity?
Monitor aktivity slúži ako vaša prvá obranná línia pri riešení problémov s výkonom. Poskytuje okamžitý prehľad o tom, čo sa deje na vašom počítači. SQL Server inštanciu bez nutnosti zložitých T-SQL dotazov alebo nástrojov tretích strán.
Tento nástroj vyniká v tom, že vám pomáha rýchlo identifikovať bežné problémy, ako sú blokujúce relácie, dotazy náročné na CPU, nadmerné vykonávanie dotazov a úzke miesta I/O. Keď používatelia nahlásia, že aplikácia je pomalá alebo nereaguje, Activity Monitor vám pomôže určiť, či je vinníkom databázový server.
Pre správcov databáz, ktorí nepracujú s SQL Server Monitor aktivity ponúka denne prístupný vstupný bod pre pochopenie aktivity servera. Dokonca aj skúsení správcovia databáz ho používajú ako svojtarkľúčový bod pre vyšetrovanie výkonnosti.
1.3 Monitor aktivity vs. iné monitorovacie nástroje
Hoci je Monitor aktivity užitočný, je dôležité pochopiť, ako sa porovnáva s inými možnosťami monitorovania:
Monitor aktivity vs. sp_WhoIsActive: Monitor aktivity poskytuje grafické rozhranie s viacerými panelmi, zatiaľ čo sp_WhoIsActive je komplexná uložená procedúra, ktorá ponúka podrobnejšie informácie v jednej sade výsledkov. sp_WhoIsActive zobrazuje konkrétne typy čakania, ktoré Monitor aktivity zoskupuje, a poskytuje podrobnejšie informácie o blokovaní.
Monitor aktivity vs. sp_who2: Tradičný príkaz sp_who2 zobrazuje základné informácie o relácii, ale Activity Monitor ide ďalej a zobrazuje štatistiky čakania, náročné dotazy a metriky I/O v organizovanom, vizuálnom formáte.
Monitor aktivity verzus nástroje tretích strán: Komerčné monitorovacie riešenia, ako napríklad SolarWinds Database Performance Analyzer, ponúkajú historické sledovanie, upozornenia a pokročilú analytiku, ktoré Activity Monitoru chýbajú. Activity Monitor však nevyžaduje žiadne ďalšie cost alebo inštaláciu.
1.4 Kľúčové výhody pre správcov databáz
Monitor aktivity ponúka niekoľko výhod, vďaka ktorým je nevyhnutným nástrojom pre správcov databáz:
- nula Cost: Ako vstavaný SQL Server Funkcia Management Studio, nevyžaduje sa žiadny licenčný poplatok ani úsilie spojené s nasadením.
- Monitorovanie v reálnom čase: Sledujte aktuálnu aktivitu servera v reálnom čase s nastaviteľnými intervalmi obnovovania od 1 sekundy do 1 hodiny.
- Integrované akcie: Kliknite pravým tlačidlom myši na procesy pre ukončenie relácií, zobrazenie podrobností dotazu alebo ich spustenie SQL Server Trasy profilera – všetko priamo z nástroja.
- Viaceré perspektívy: Zobrazte stav servera z rôznych uhlov pohľadu prostredníctvom piatich špecializovaných tabúľ, z ktorých každá sa zameriava na špecifické aspekty výkonu.
- Rýchle riešenie problémov: Identifikujte most bežné problémy s výkonom v priebehu niekoľkých minút, čím sa zrýchľuje priemerný čas na ich vyriešenie.
- Nízka bariéra vstupu: Na efektívne používanie nástroja nie sú potrebné žiadne pokročilé znalosti, hoci sú hlbšie SQL Server odborné znalosti pomáhajú s interpretáciou.
2. Získanie Stars monitorom aktivity
Predtým, ako budete môcť efektívne využívať nástroj Activity Monitor, musíte pochopiť predpoklady, požadované povolenia a rôzne metódy spustenia nástroja.
2.1 Predpoklady a systémové požiadavky
na použitie SQL Server Monitor aktivity, ktorý potrebujete SQL Server Management Studio (SSMS) nainštalované na vašom lokálnom počítači alebo na jump serveri. Nástroj Activity Monitor bol v roku 2006 výrazne prepracovaný. SQL Server 2008, takže informácie v tejto príručke sa vzťahujú na SQL Server 2008 a novšie verzie.
Musíte mať sieťové pripojenie k SQL Server inštanciu, ktorú chcete monitorovať. Pre cloud-hostNa prístup k inštancii budete zvyčajne potrebovať pripojenie VPN alebo správne nakonfigurované pravidlá brány firewall.
Monitor aktivity funguje so všetkými vydaniami SQL Server, vrátane Express, Standard a Enterprise. Samotný nástroj beží na klientskom počítači v rámci SSMS, takže zdroje servera sú ovplyvnené iba monitorovacími dotazmi, ktoré vykonáva.
2.2 Požadované povolenia
Pre správne fungovanie Monitora aktivity sú nevyhnutné správne povolenia. Bez príslušných oprávnení sa môže zobraziť prázdny displej alebo sa môžu zobraziť chyby typu „prístup odmietnutý“.
2.2.1 Povolenie na zobrazenie stavu servera
ZOBRAZIŤ STAV SERVERA Povolenie je primárnou požiadavkou na používanie Monitora aktivity. Toto povolenie na úrovni servera vám umožňuje zobraziť všetky aktívne procesy a ich súvisiace metriky.
Na udelenie tohto povolenia môže správca servera spustiť:
GRANT VIEW SERVER STATE TO [YourLoginName];
Bez možnosti ZOBRAZIŤ STAV SERVERA sa Monitor aktivity môže otvoriť, ale v žiadnom zo svojich panelov sa nezobrazia žiadne údaje.
2.2.2 Povolenia na úrovni databázy
Na zobrazenie informácií v table Vstupno-výstupných operácií dátových súborov potrebujete ďalšie povolenia. Konkrétne musíte mať jednu z nasledujúcich kombinácií:
- VYTVORIŤ DATABÁZU povolenie, alebo
- ZMENIŤ AKÚKOĽVEK DATABÁZU povolenie, alebo
- ZOBRAZIŤ AKÚKOĽVEK DEFINÍCIU povolenie
Tieto povolenia musia byť kombinované s ZOBRAZIŤ STAV SERVERA pre plnú funkčnosť Monitora aktivity.
2.2.3 Riešenie problémov s povoleniami
Ak sa Monitor aktivity otvorí, ale nezobrazuje žiadne údaje, povolenia súost bežná príčina. Skontrolujte, či má vaše prihlasovacie údaje povolené VIEW SERVER STATE na úrovni servera. Svoje oprávnenia môžete overiť spustením:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
V stĺpci permission_name vyhľadajte „VIEW SERVER STATE“ (ZOBRAZIŤ STAV SERVERA). Ak chýba, kontaktujte správcu databázy, aby vám ho udelil.
2.3 Ako otvoriť Monitor aktivity v SSMS
SQL Server Management Studio ponúka štyri rôzne spôsoby spustenia Monitora aktivity, čo vám dáva flexibilitu na základe vašich preferencií pracovného postupu.
2.3.1 Metóda 1: Z panela s nástrojmi
Najrýchlejší spôsob otvorenia Monitora aktivity je pomocou ikony na paneli s nástrojmi:
- Pripojte sa k svojmu SQL Server napríklad v SQL Server Štúdio manažmentu.
- Nájdite ikonu Monitor aktivity na štandardnom paneli s nástrojmi (pripomína stĺpcový graf so zeleným tlačidlom prehrávania).
- Kliknutím na ikonu spustíte Monitor aktivity.
Táto metóda je najrýchlejšia, keď už pracujete v SSMS a potrebujete rýchlo skontrolovať aktivitu servera.
2.3.2 Metóda 2: Z Prieskumníka objektov
Monitor aktivity môžete spustiť aj priamo z Prieskumníka objektov:
- V Prieskumníkovi objektov vyhľadajte SQL Server inštanciu, ktorú chcete monitorovať.
- Kliknite pravým tlačidlom myši na názov inštancie.
- vybrať Activity Monitor z kontextového menu.
Táto metóda je užitočná pri pripájaní k viacerým serverom, pretože zabezpečuje monitorovanie správnej inštancie.
2.3.3 Metóda 3: Používanie klávesových skratiek
Pre používateľov zameraných na prácu s klávesnicou, SQL Server Management Studio poskytuje špeciálnu skratku:
- Uistite sa, že SSMS je aktívne okno a ste pripojení k inštancii.
- Pre médiá ctrl + ostatné + A.
- Monitor aktivity sa otvorí pre aktuálne vybratú inštanciu v Prieskumníkovi objektov.
Upozorňujeme, že Activity Monitor sa pripojí k inštancii servera, ktorú ste vybrali v Prieskumníkovi objektov, preto sa pred použitím tejto skratky uistite, že ste vybrali správnu inštanciu.
2.3.4 Metóda 4: Z ponuky Možnosti (Starkonfigurácia tup)
Ak často používate Monitor aktivity, môžete nakonfigurovať SSMS tak, aby ho spúšťal automaticky vždy, keď...tark žiadosti:
- In SQL Server Management Studio, prejdite na náradie -> možnosti.
- V dialógovom okne Možnosti rozbaľte prostredieA potom vyberte Startrubice.
- Od úvodného spustenia, ktoré stanovuje ciele, cez objavovanie bohatého multimediálneho obsahu a interaktívnych výziev, ktoré preveria vaše zručnosti v reálnom čase. Na startrubice rozbaľovací zoznam, vyberte Otvorte Prieskumníka objektov a Monitor aktivity.
- vybrať OK.
Pri ďalšom spustení SSMS a pripojení k serveru sa automaticky otvorí Monitor aktivity spolu s Prieskumníkom objektov.
3. Pochopenie tably Monitor aktivity
Monitor aktivity organizuje informácie do piatich rozbaľovacích tabúľ, z ktorých každá poskytuje iný pohľad na aktivitu servera. Pochopenie toho, čo každá tabla zobrazuje, je kľúčové pre efektívne riešenie problémov.
3.1 Prehľadový panel
Panel Prehľad zobrazuje štyri grafy v reálnom čase, ktoré vám poskytnú rýchly prehľad o vašom zdravotnom stave. SQL Server napríklad. Tieto grafy sa aktualizujú v konfigurovateľnom intervale a pomáhajú vám na prvý pohľad identifikovať abnormálne vzory.
3.1.1 % Čas procesora
Tento graf zobrazuje percento času, ktorý procesor strávi vykonávaním nečinných vlákien pre SQL Server inštanciu naprieč všetkými CPU. Hodnota predstavuje SQL Servervyužitie procesora, nie využitie CPU celého servera.
Ak sa vám neustále zobrazuje vyťaženie procesora na úrovni 100 % alebo blízko nej, váš server je obmedzený na CPU. Môže to naznačovať neefektívne dotazy, chýbajúce indexy alebo nedostatočnú hardvérovú kapacitu. Na identifikáciu dotazov, ktoré spotrebúvajú čas, použite tablu Nedávne drahé dotazy.ost CPU.
3.1.2 Čakajúce úlohy
Táto metrika zobrazuje počet úloh, ktoré čakajú na uvoľnenie zdrojov pred ich pokračovaním. Úlohy môžu čakať na CPU, I/O, pamäť alebo zámky.
Konzistentne vysoký počet čakajúcich úloh naznačuje súperenie zdrojov. Panel Čakanie na zdroje poskytuje viac podrobností o tom, ktoré typy zdrojov spôsobujú čakanie.
3.1.3 Databázové I/O operácie (MB/s)
Tento graf znázorňuje rýchlosť prenosu dát medzi pamäťou a diskom. Kombinuje čítanie aj zápis, merané v megabajtoch za sekundu.
Špičky v databázových I/O operáciách môžu naznačovať dotazy vykonávajúce skenovanie veľkých tabuliek, nadmernú aktivitu protokolovania alebo operácie kontrolných bodov. Panel Dátový súbor I/O rozdeľuje aktivitu I/O podľa databázy a súboru.
3.1.4 Dávkové požiadavky/sek.
Táto metrika predstavuje počet SQL Server dávky prijaté inštanciou za sekundu. Dávka môže byť jeden príkaz alebo viacero príkazov odoslaných spolu.
Táto hodnota vám poskytuje predstavu o celkovej aktivite servera. Náhle poklesy dávkových požiadaviek počas bežných pracovných hodín môžu naznačovať problémy s pripojením aplikácií alebo problémy, na ktorých sa používateľ stretáva.
3.1.5 Nastavenie intervalov obnovovania
Môžete si prispôsobiť, ako často monitor aktivity aktualizuje svoje údaje:
- Kliknite pravým tlačidlom myši kdekoľvek v table Prehľad.
- vybrať Interval obnovenia.
- Vyberte interval z preddefinovaných hodnôt: 1 sekunda, 5 sekúnd, 10 sekúnd (predvolené), 30 sekúnd, 1 minúta alebo 1 hodina.
Nastavenie intervalov obnovovania na menej ako 10 sekúnd zvyšuje zaťaženie monitorovania na vašom serveri. V prípade produkčných systémov s vysokou záťažou zvážte použitie intervalov 30 sekúnd alebo dlhšie, aby ste minimalizovali vplyv.
3.2 Panel Procesy
Panel Procesy zobrazuje informácie o aktuálne spustených reláciách na vašom SQL Server inštancia. Táto tabla je nevyhnutná na identifikáciu toho, kto čo robí, a na odhalenie blokujúcich problémov.
3.2.1 Pochopenie procesných informácií
Každý riadok v table Procesy predstavuje aktívnu reláciu na serveri. Tabla zobrazuje relácie zo všetkých databáz a všetkých používateľov, čo vám poskytuje komplexný prehľad o aktivite servera.
Zobrazené informácie zahŕňajú prihlasovacie meno, názov aplikácie, hostnázov, databáza, ku ktorej sa pristupuje, a aktuálny príkaz. To vám pomôže prepojiť aktivitu databázy s konkrétnymi používateľmi alebo aplikáciami.
3.2.2 Vysvetlenie kľúčových stĺpcov
Pochopenie kľúčových stĺpcov vám pomôže efektívne interpretovať informácie o procese:
- ID relácie: Jedinečný identifikátor pre každé pripojenie. Systémové procesy používajú negatívne ID relácií.
- Používateľský proces: Označuje, či ide o používateľskú reláciu (Áno) alebo systémový proces (Nie).
- Prihlásenie: SQL Server prihlasovacie meno alebo účet systému Windows priradený k relácii.
- databázy: Aktuálny kontext databázy pre reláciu.
- Stav úlohy: Zobrazuje, čo sa relácia aktuálne deje (BEŽÍ, POZASTAVENÁ, SPÍ atď.).
- príkaz: Typ vykonávaného príkazu (SELECT, INSERT, UPDATE atď.).
- použitie: Názov aplikácie, ktorá vytvorila pripojenie.
- Čakacia doba: Ako dlho (v milisekundách) relácia čaká na zdroje.
- Typ čakania: Konkrétny typ zdroja, na ktorý relácia čaká.
- Čas CPU: Celkový čas CPU spotrebovaný touto reláciou od pripojenia.
- Využitie pamäte: Množstvo pamäte (v KB) aktuálne pridelenej relácii.
3.2.3 Procesy filtrovania a triedenia
Panel Procesy obsahuje výkonné možnosti filtrovania, ktoré vám pomôžu zamerať sa na relevantné relácie:
- Kliknite na rozbaľovaciu šípku v ľubovoľnom záhlaví stĺpca.
- Filter zobrazuje dostupné hodnoty pre daný stĺpec vrátane Všetko, Blanksa NonBlanks.
- Vyberte konkrétne hodnoty na filtrovanie zobrazenia iba na tieto relácie.
Napríklad môžete filtrovať Stav úlohy zobraziť iba BEŽIACE relácie alebo filtrovať databázy zobraziť aktivitu v konkrétnej databáze.
Zoradiť môžete aj podľa ľubovoľného stĺpca kliknutím na jeho hlavičku. Kliknite raz pre vzostupné zoradenie, dvakrát pre zostupné zoradenie.
3.2.4 Identifikácia blokovania a zablokovaných relácií
Panel Procesy vám pomáha identifikovať blokujúce scenáre, v ktorých jedna relácia bráni iným v pokračovaní:
- Zablokované používateľom: Zobrazuje ID relácie, ktorá blokuje túto reláciu. Ak tento stĺpec obsahuje hodnotu, relácia čaká na zámok držaný inou reláciou.
- Blokátor hlavy: Zobrazí sa „1“, ak táto relácia blokuje ostatných, ale sama nie je blokovaná. Toto je hlavná príčina blokovacieho reťazca.
Ak chcete preskúmať problém s blokovaním, najprv identifikujte blokátor headsetu (reláciu označenú v stĺpci Blokátor headsetu číslom „1“), potom preskúmajte, čo robí, a rozhodnite sa, či ho necháte dokončiť alebo ho ukončíte.
3.2.5 Akcie procesu (Ukončenie, Podrobnosti, Sledovanie)
Monitor aktivity vám umožňuje vykonávať akcie v jednotlivých reláciách:
- Kliknite pravým tlačidlom myši na ľubovoľnú reláciu v paneli Procesy.
- Uvidíte niekoľko možností:
- Podrobnosti: Zobrazuje posledný príkaz vykonaný v tejto relácii.
- Proces zabitia: Ukončí reláciu (používajte opatrne).
- Sledovanie procesu v SQL Server profilovač: Bark SQL Server Profiler a automaticky filtruje tak, aby zobrazoval iba aktivitu z tejto relácie.
Možnosť Podrobnosti zobrazuje text príkazu, ale upozorňujeme, že ide o posledný príkaz vykonaný – nemusí byť stále spustený. Možnosť Sledovať je obzvlášť užitočná, keď potrebujete vidieť celú postupnosť príkazov, ktoré relácia vykonáva.
3.3 Tabla čakania na zdroje
Panel Čakanie na zdroje sumarizuje štatistiky čakania a zobrazuje, na aké typy relácií zdrojov čakajú.ost často. Tieto informácie sú kľúčové pre diagnostiku úzkych miest výkonu.
3.3.1 Pochopenie štatistík čakania
Kedy SQL Server Ak server nemôže okamžite vyhovieť požiadavke na zdroj (napríklad zámok, čas CPU alebo pamäť), požadujúca úloha prejde do stavu čakania. Štatistiky čakania sledujú tieto čakacie doby a pomáhajú vám pochopiť, kde server trávi čas čakaním namiesto práce.
Panel Čakania na zdroje zhromažďuje údaje zo zobrazení dynamickej správy systému, ako sú sys.dm_os_wait_stats a sys.dm_exec_requests. Pri každom intervale obnovenia vypočíta rozdiel medzi aktuálnou a predchádzajúcou snímkou a zobrazí mieru akumulácie pre každý typ čakania.
3.3.2 Kategórie čakania
Monitor aktivity zoskupuje stovky jednotlivých typov čakania do širších kategórií pre zjednodušenie interpretácie:
- CPU: Úlohy čakajúce na uvoľnenie času CPU.
- Západka vyrovnávacej pamäte: Čaká na krátkodobé synchronizačné objekty chrániace prístup k dátovým stránkam v pamäti. Táto kategória zahŕňa čakania na zámky stránok (PAGELATCH_*).
- Lock: Čakania spôsobené reláciami, ktoré majú zámky, ktoré potrebujú iné relácie.
- pamäť: Čaká na pridelenie pamäte potrebné pre operácie ako triedenie a hašovanie.
- Sieťové vstupy/výstupy: Čaká na odosielanie údajov klientom alebo prijímanie údajov od klientov.
- SQL CLR: Čakania súvisiace s vykonávaním Common Language Runtime.
Toto zoskupenie síce zjednodušuje pohľad, ale zároveň zakrýva dôležité detaily. Napríklad „Buffer Latch“ môže zoskupovať čakania PAGELATCH_SH, PAGELATCH_UP a PAGELATCH_EX, ktoré majú rôzne dôsledky pre výkon.
3.3.3 Interpretácia času čakania a úloh čakania
Panel Čakania na zdroje zobrazuje dve kľúčové metriky pre každú kategóriu čakania:
- Kumulatívny čas čakania (ms): Celkový počet milisekúnd nahromadených počas aktuálneho intervalu obnovenia pre túto kategóriu čakania.
- Čakacie úlohy: Počet úloh, ktoré momentálne čakajú na zdroje v tejto kategórii.
Hodnota času čakania je obzvlášť zaujímavá. Ak máte 10-sekundový interval obnovovania a vidíte čas čakania 20 000 ms pre kategóriu, naznačuje to viacero súbežných čakaní (20 000 ms / 10 000 ms = priemer 2 súbežných čakaní počas intervalu).
3.3.4 Identifikácia úzkych miest vo výkonnosti
Pomocou tably Čakanie na zdroje zistite, kde váš server trávi čas.ost čas čakania:
- Rozbaľte tablu Čakanie na zdroje.
- Sledujte kategórie čakania, ktoré zhromažďujú najvyššie čakacie doby.
- Triediť podľa Kumulatívny čas čakania zistiť, ktoré zdroje sú most obmedzený.
Čakania s vysokým počtom uzamknutých vyrovnávacích pamätí často naznačujú súbeh o dátové stránky v pamäti, čo môže naznačovať úzke miesta I/O alebo súbeh v dočasnej databáze. Čakania s vysokým počtom uzamknutých stránok poukazujú na problémy s blokovaním. Čakania s vysokým počtom pamäte naznačujú nedostatočné pamäťové pridelenia pre operácie s dotazmi.
3.4 Panel V/V pre dátové súbory
Panel Vstupno-výstupných operácií dátových súborov zobrazuje aktivitu disku pre každý databázový súbor na vašom serveri, čo vám pomáha identifikovať úzke miesta vstupno-výstupných operácií a pochopiť vzorce využitia disku.
3.4.1 Pochopenie metrík I/O
Panel Vstupno-výstupných operácií dátových súborov zobrazuje niekoľko metrík pre každý databázový súbor:
- databázy: Názov databázy.
- Typ súboru: Buď Dáta (vrátane tabuliek a indexov), alebo Protokol (transakčný protokol).
- Logický názov: Logický názov súboru, ako je definovaný v SQL Server.
- Čítanie MB/s: Rýchlosť čítania údajov z tohto súboru.
- MB/s zapísané: Rýchlosť zapisovania údajov do tohto súboru.
- Čas odozvy (ms): Priemerný čas odozvy pre I/O operácie na tomto súbore.
Tieto metriky sa obnovujú v rovnakom intervale ako tabla Prehľad, čo vám poskytuje prehľad o aktivite disku v reálnom čase.
3.4.2 Identifikácia úzkych miest I/O
Dávajte si pozor na tieto vzorce, ktoré naznačujú problémy s výkonom I/O:
- Vysoká doba odozvy: Časy odozvy trvalo nad 15 – 20 ms naznačujú pomalé diskové subsystémy. Časy odozvy nad 50 ms naznačujú vážne úzke miesta v I/O operáciách.
- Nevyvážená záťaž: Ak jeden dátový súbor vykazuje výrazne vyššie rýchlosti I/O operácií ako ostatné v tej istej databáze, môže byť užitočné pridať ďalšie súbory na rozloženie záťaže.
- Nadmerná aktivita dočasnej databázy Tempdb: Vysoké rýchlosti vstupno-výstupných operácií v súboroch tempdb často naznačujú, že dotazy vytvárajú veľké množiny medzivýsledkov alebo používajú neefektívne plány vykonávania.
3.4.3 Analýza databázových súborov
Pomocou panela V/V súborov s údajmi pochopíte, ako vaše databázy využívajú diskové prostriedky:
- Rozbaľte tablu Vstup/výstup dátových súborov.
- Triediť podľa Čítanie v MB/s or MB/s zapísané identifikovať most aktívne súbory.
- Všimnite si všetky súbory s trvalo vysokou aktivitou alebo dlhými časmi odozvy.
- Porovnajte tieto informácie s panelom Nedávne drahé dotazy, aby ste zistili, ktoré dotazy spôsobujú zaťaženie vstupno-výstupnými operáciami.
3.5 Panel Nedávne drahé dopyty
Tabla Nedávne drahé dotazy je často tá najdôležitejšia.ost cenný panel na riešenie problémov s výkonom aplikácií. Zobrazuje dotazy, ktoré spotrebúvajú značné množstvo serverových prostriedkov, čo vám pomáha identifikovať príležitosti na optimalizáciu.
3.5.1 Pochopenie metrík dopytov
Monitor aktivity zobrazuje niekoľko metrík pre každý náročný dopyt:
- Počet vykonaní/min: Koľkokrát sa dotaz vykonal počas poslednej minúty.
- CPU (ms/s): Čas CPU spotrebovaný týmto dotazom za sekundu.
- Fyzické čítania/s: Počet čítaní fyzického disku za sekundu pre tento dopyt.
- Logické zápisy/s: Počet logických zápisov (do vyrovnávacej pamäte buffera) za sekundu.
- Logické čítania/s: Počet logických čítaní (z vyrovnávacej pamäte buffera) za sekundu.
- Priemerné trvanie (ms): Priemerný čas vykonania tohto dopytu.
- Počet plánov: Počet plánov vykonávania vo vyrovnávacej pamäti pre tento dopyt.
Tieto metriky vám pomôžu pochopiť nielen to, ktoré dotazy sú drahé, ale aj prečo sú drahé a ako často jazdia.
3.5.2 Možnosti zoradenia
Panel Nedávne drahé dotazy môžete zoradiť podľa rôznych metrík a nájsť tak rôzne typy problémov:
- Kliknite na ľubovoľnú hlavičku stĺpca a zoradíte podľa danej metriky.
- Medzi bežné stratégie triedenia patria:
- Zoradiť podľa CPU: Nájsť dopyty využívajúce most čas procesora.
- Zoradiť podľa Počet vykonaní/min: Identifikujte dotazy, ktoré sa spúšťajú nadmerne často.
- Zoradiť podľa fyzického čítania: Nájsť dopyty spôsobujúce most diskový vstup/výstup.
- Zoradiť podľa priemerného trvania: Vyhľadajte dlhotrvajúce dotazy.
Pri riešení problémov s výkonom skúste zoradiť podľa viacerých stĺpcov, aby ste získali rôzne perspektívy. Skutočným problémom môže byť dotaz s miernym využitím CPU, ale extrémne vysokým počtom vykonaní za minútu.
3.5.3 Zobrazenie textu dopytu
Ak chcete zobraziť skutočný SQL príkaz za náročným dotazom:
- Kliknite pravým tlačidlom myši na riadok dotazu v table Nedávne drahé dotazy.
- vybrať Upraviť text dopytu.
- Otvorí sa nové okno dotazu zobrazujúce kompletný príkaz SQL.
To vám umožní preskúmať logiku dotazu a identifikovať potenciálne možnosti optimalizácie. Potom môžete skopírovať text dotazu na testovanie upravených verzií.
3.5.4 Analýza realizačných plánov
Realizačné plány vám ukážu, ako SQL Server vykoná dotaz a odhalí neefektívnosti, ako sú chýbajúce indexy alebo nevhodné typy spojení:
- Kliknite pravým tlačidlom myši na riadok dotazu v table Nedávne drahé dotazy.
- vybrať Zobraziť plán realizácie.
- SQL Server Management Studio zobrazuje grafické znázornenie toho, ako sa dotaz vykonáva.
Hľadajte operácie, ktoré spotrebúvajú veľké percento dotazu cost, upozornenia na chýbajúce štatistiky alebo indexy a neočakávané operácie skenovania tabuliek. Tieto často naznačujú, na čo by sa malo zamerať optimalizačné úsilie.
3.5.5 Identifikácia problematických dopytov
V table Nedávne drahé dotazy sledujte tieto vzory:
- Nadmerné popravy: Dotaz vykonávaný tisíckrát za minútu môže naznačovať problém s dotazom N+1, kde kód aplikácie volá databázu v rámci slučky.
- Vysoké fyzické čítania: Dotazy s vysokou mierou fyzického čítania sa často dostávajú na disk, čo naznačuje chýbajúce indexy alebo zle napísané dotazy.
- Vysoký CPU s nízkym trvaním: Mnoho rýchlych dotazov, ktoré spotrebúvajú veľa procesora, môže mať vplyv na výkon servera rovnako ako niekoľko pomalých dotazov.
- Viaceré počty plánov: Dotazy s mnohými plánmi vykonávania môžu trpieť problémami s parametrickým sniffingom alebo neparametrizovanými dotazmi, ktoré spôsobujú nafúknutie vyrovnávacej pamäte plánu.
4. Používanie monitora aktivity na riešenie problémov s výkonom
Monitor aktivity skutočne zažiari, keď ho systematicky používate na diagnostikovanie a riešenie problémov s výkonom. Táto časť sa zaoberá bežnými scenármi riešenia problémov a ich riešením.
4.1 Diagnostika nadmerného vykonávania dotazov
Jeden z nichost Bežným problémom s výkonom je vykonávanie dotazov oveľa častejšie, ako je potrebné, často kvôli problémom s návrhom aplikácie.
4.1.1 Identifikácia opakovaných dopytov
Ak chcete odhaliť dotazy, ktoré sa vykonávajú príliš často:
- Otvorte Monitor aktivity a rozbaľte Nedávne drahé dopyty tabule.
- Triediť podľa Pokusy/min (počet vykonaní za minútu).
- Hľadajte dotazy na začiatku s počtom vykonaní, ktorý sa zdá byť neprimerane vysoký.
- Kliknite pravým tlačidlom myši na podozrivý dopyt a vyberte Upraviť text dopytu preskúmať SQL príkaz.
Napríklad, ak vidíte jednoduchý príkaz SELECT, ktorý sa vykonáva 37 000-krát za minútu, spochybnite, či aplikácia naozaj potrebuje volať tento dotaz tak často. Most Dotazy vykonávané viac ako niekoľko tisíckrát za minútu si vyžadujú vyšetrovanie.
4.1.2 Analýza základných príčin
Nadmerné vykonávanie dotazov zvyčajne pramení z týchto problémov:
- Problém s dotazom N+1: Kód aplikácie načíta zoznam položiek a potom pre každú položku vykoná samostatný dotaz, aby načítal súvisiace údaje. Tým sa vytvorí N ďalších dotazov, kde N je počet položiek.
- Chýbajúce ukladanie do vyrovnávacej pamäte: Aplikácia vyhľadáva v databáze údaje, ktoré rarzmeny namiesto ukladania do vyrovnávacej pamäte aplikácie.
- Slučky dotazovania: Kód opakovane dotazuje databázu a kontroluje zmeny stavu, namiesto použitia oznámení o zmenách alebo frontov správ.
- Neefektívnosť ORM: Entity Framework a podobné nástroje niekedy generujú neefektívne vzory dotazov, keď vývojári nerozumejú tomu, ako sa ich kód prekladá do SQL.
Ak chcete určiť hlavnú príčinu, vysledujte dotaz späť ku kódu aplikácie. Všimnite si Využitie a Login stĺpce v table Procesy pri vykonávaní dotazu. Môžete tiež kliknúť pravým tlačidlom myši na proces a vybrať Sledovanie procesu v SQL Server Profiler zobraziť vzorec volania.
4.1.3 Riešenia a osvedčené postupy
Keď identifikujete nadmerné vykonávanie dotazov, zvážte tieto riešenia:
- Dávkové spracovanie: Upravte kód aplikácie tak, aby načítal viacero položiek v jednom dotaze pomocou spojení alebo klauzúl IN namiesto vykonávania samostatných dotazov v slučke.
- Ukladanie výsledkov do vyrovnávacej pamäte: Často používaná vyrovnávacia pamäť, zriedkavo sa meniace údaje v pamäti aplikácie s príslušnými časmi expirácie.
- Dychtivé načítanie: Nakonfigurujte ORM tak, aby používali stratégie rýchleho načítavania, ktoré načítavajú súvisiace údaje v menšom počte efektívnejších dotazov.
- Parametrizácia dotazu: Zabezpečte, aby dotazy používali parametre namiesto zreťazovania hodnôt, čo zlepšuje opätovné použitie vyrovnávacej pamäte plánu a znižuje réžiu kompilácie.
4.2 Preskúmanie problémov s blokovaním
K blokovaniu dochádza, keď jedna relácia uzamkne zariadenia, ktoré bránia pokračovaniu iných relácií. To sa prejavuje pomalými časmi odozvy aplikácií a frustrovanými používateľmi.
4.2.1 Identifikácia blokovacích reťazcov
Na detekciu a analýzu blokovania:
- Otvorte Monitor aktivity a rozbaľte procesy tabule.
- Hľadajte relácie s hodnotami v Zablokované používateľom stĺpec – tieto čakajú na zámky držané inými reláciami.
- Nájsť relácie s hodnotou „1“ v Blokátor hlavy stĺpec – to sú hlavné príčiny blokovania reťazcov.
- Poznámka: ID relácie blokátora hlavy.
- Kliknite pravým tlačidlom myši na reláciu blokovania hlavy a vyberte podrobnosti aby sa zistilo, aký príkaz sa vykonáva.
Pochopenie blokovacieho reťazca je kľúčové. Blokátorom začiatku je relácia, ktorú musíte preskúmať, nie blokované relácie za ňou.
4.2.2 Pochopenie typov zámkov
Typ čakania Stĺpec v table Procesy označuje, na aký typ zámku čakajú blokované relácie:
- LCK_M_X: Čakanie na exkluzívny zámok, zvyčajne spôsobené operáciami UPDATE, DELETE alebo INSERT.
- LCK_M_S: Čakanie na zdieľaný zámok, zvyčajne príkazy SELECT čakajúce na uvoľnenie exkluzívnych zámkov.
- LCK_M_U: Čakanie na uzamknutie aktualizácie, typ prechodného uzamknutia používaný počas aktualizácií.
- LCK_M_IX: Čakanie na exkluzívny zámer, ktoré indikuje súperenie o zámok na úrovni stránky alebo riadku.
Čakajte na zdroj Stĺpec zobrazuje, ktorý databázový objekt je uzamknutý, čo vám pomôže pochopiť, ktorá tabuľka alebo index je súčasťou sporu.
4.2.3 Riešenie problémov s blokovaním
Keď identifikujete blokujúcu reláciu a jej príčinu, máte niekoľko možností:
- Počkajte na dokončenie: Ak blokátor hlavičky spúšťa legitímny dopyt, ktorý sa čoskoro dokončí, môže byť najlepšie nechať ho dokončiť prirodzene.
- Ukončiť reláciu: Ak je blokovanie hlavičky zaseknuté alebo spúšťa dotaz, ktorý by sa mal zrušiť:
- Kliknite pravým tlačidlom myši na reláciu v table Procesy.
- vybrať kill Process.
- Potvrďte akciu v dialógovom okne.
- Optimalizovať dopyty: Ak sa blokovanie opakuje pri rovnakých dotazoch, optimalizujte ich, aby sa skrátila doba ich uzamknutia.
- Úprava úrovní izolácie: Zvážte použitie funkcie READ COMMITTED SNAPSHOT IZOLATION na zníženie blokovania pri úlohách s vysokým počtom čítaní.
- Ladenie indexu: Pridajte indexy na zrýchlenie dotazov a skrátenie doby, počas ktorej držia zámky.
4.3 Analýza vysokého využitia CPU
Keď sa v table Prehľad zobrazuje čas procesora konzistentne na úrovni 100 % alebo blízko nej, je potrebné identifikovať, ktoré dotazy sú za to zodpovedné, a určiť, či ich možno optimalizovať.
4.3.1 Identifikácia dotazov náročných na CPU
Ak chcete nájsť dotazy, ktoré nadmerne spotrebúvajú CPU:
- Otvorte Nedávne drahé dopyty tabule.
- Triediť podľa CPU (ms/s) zobraziť dotazy pomocou most Čas procesora.
- Preskúmajte najčastejšie dopyty v zozname.
- Kliknite pravým tlačidlom myši na dotazy s vysokou spotrebou procesora a vyberte Upraviť text dopytu na zobrazenie SQL príkazu.
- vybrať Zobraziť plán realizácie aby sme pochopili, ako sa dotaz vykonáva.
Venujte pozornosť nielen využitiu CPU jednotlivými dotazmi, ale aj Pokusy/min stĺpec. Dotaz využívajúci mierne množstvo CPU na vykonanie, ale spustený tisíckrát za minútu, môže byť najväčším spotrebiteľom CPU.
4.3.2 Techniky optimalizácie dotazov
Medzi bežné metódy na zníženie spotreby CPU patria:
- Pridať chýbajúce indexy: Vyhľadávanie indexov využíva oveľa menej CPU ako skenovanie tabuliek. V plánoch vykonávania hľadajte chýbajúce odporúčania indexov.
- Prepíšte neefektívne dotazy: Nahraďte kurzory operáciami založenými na množinách, odstráňte nepotrebné funkcie v klauzulách WHERE a odstráňte redundantné spojenia.
- Aktualizácia štatistík: Zastarané štatistiky spôsobujú SQL Server zvoliť neefektívne plány vykonávania. Spustite príkaz UPDATE STATISTICS na postihnutých tabuľkách.
- Znížte objem dát: Pridajte klauzuly WHERE na filtrovanie údajov skôr, použite TOP alebo OFFSET/FETCH na stránkovanie a vyhnite sa SELECT *.
- Oprava parametrov sniffingu: Ak vyhľadávanie parametrov spôsobuje problémy, použite OPTION (RECOMPILE), rady k dotazom alebo plánovacie príručky.
4.4 Skúmanie problémov s pamäťou
Zaťaženie pamäte môže spôsobiť, že dotazy sa presunú na disk, čo výrazne zníži výkon. Monitor aktivity vám pomôže identifikovať operácie náročné na pamäť.
4.4.1 Pochopenie pamäťových metrík
Využitie pamäte V stĺpci v paneli Procesy sa zobrazuje pamäť pridelená každej relácii v kilobajtoch. Vysoké využitie pamäte jednou reláciou často naznačuje:
- Veľké triediace alebo hašovacie operácie, ktoré sa nezmestili do pôvodne pridelenej pamäte
- Dotazy načítavajúce obrovské množiny výsledkov
- Nadmerný paralelizmus vytvárajúci veľa kópií operátorov plánu vykonávania
- Úniky pamäte v uložených procedúrach alebo funkciách CLR
Tabla Čakanie na zdroje môže zobrazovať čakanie na pamäť, keď dotazy nemôžu získať dostatok pamäťových grantov a musia čakať na sprístupnenie pamäte.
4.4.2 Identifikácia dotazov náročných na pamäť
Ak chcete nájsť dopyty spôsobujúce zaťaženie pamäte:
- V procesy tabla, zoradiť podľa Využitie pamäte zobraziť relácie spotrebúvajúce most Pamäť.
- Kliknite pravým tlačidlom myši na relácie s vysokým využitím pamäte a vyberte podrobnosti zobraziť ich dopyty.
- V Nedávne drahé dopyty v table vyhľadajte dopyty s vysokou Logické čítania or Logické zápisy, pretože tieto často korelujú s využitím pamäte.
- Preskúmajte plány vykonávania pre operátory triedenia a hašovania, ktoré používajú pamäťové granty.
Dotazy zobrazujúce upozornenia „Udelenie pamäte“ v plánoch vykonávania alebo upozornenia na preplnenie naznačujú problémy s tlakom na pamäť.
4.5 Detekcia problémov s výkonom aplikácie
Keď používatelia hlásia pomalé časy odozvy aplikácií, Monitor aktivity vám pomôže určiť, či je úzkym hrdlom databáza.
4.5.1 Korelácia monitora aktivity s problémami aplikácie
Ak chcete preskúmať pomalosť aplikácie:
- Všimnite si presný čas, kedy používatelia nahlásili problémy, a dotknuté aplikácie.
- Otvorte Monitor aktivity a skontrolujte Prehľad panel pre nárasty zdrojov v danom čase.
- V procesy tabla, filtrovať podľa Využitie zobraziť iba pripojenia z dotknutej aplikácie.
- Hľadajte vysoké Počkajte hodnoty, ktoré indikujú oneskorenia databázy.
- Skontrolovať Nedávne drahé dopyty panel pre dotazy z danej aplikácie, ktorá spotrebúva značné množstvo zdrojov.
Ak databáza nevykazuje žiadnu nezvyčajnú aktivitu, zatiaľ čo používatelia zaznamenávajú pomalosť, problém pravdepodobne spočíva v kóde aplikácie, latencii siete alebo výkone na strane klienta.
4.5.2 Identifikácia neefektívnych aplikačných vzorcov
Monitor aktivity odhaľuje niekoľko anti-vzorov v dizajne aplikácií:
- Ukecané aplikácie: Veľa malých dotazov namiesto menšieho počtu efektívnejších dotazov. Identifikuje sa vysokým počtom pripojení a množstvom jednoduchých dotazov v časti Nedávne drahé dotazy.
- N+1 dopytov: Jeden dopyt, za ktorým nasleduje N ďalších dopytov na súvisiace údaje. Zobrazuje sa ako jednoduchý dopyt s extrémne vysokým počtom vykonaní za minútu.
- Veľké sady výsledkov: Aplikácie načítavajú oveľa viac údajov, ako je potrebné. Hľadajte vysoké Logické čítania v kombinácii s jednoduchými dotazmi SELECT *.
- Chýbajúce časové limity: Aplikácie, ktoré nenastavujú časové limity príkazov, môžu nechať pripojenia otvorené na neurčito, viditeľné ako dlho bežiace relácie v table Procesy.
5. Alternatívne metódy: Získanie údajov z monitora aktivity prostredníctvom T-SQL
Hoci Monitor aktivity poskytuje pohodlné grafické rozhranie, niekedy je potrebné získať ekvivalentné informácie programovo alebo vytvoriť vlastné riešenia monitorovania.
5.1 Používanie dynamických zobrazení správy (DMV)
SQL Server sprístupňuje informácie o aktivite prostredníctvom dynamických zobrazení správy, na ktoré Monitor aktivity vykonáva dotazy v zákulisí.
5.1.1 Kľúčové DMV pre monitorovanie aktivít
Most Dôležité DMV pre replikáciu funkcií Monitora aktivity zahŕňajú:
- sys.dm_exec_requests: Zobrazuje aktuálne vykonávané požiadavky s informáciami o CPU, I/O a čakaní.
- sys.dm_exec_sessions: Obsahuje informácie na úrovni relácie, ako napríklad prihlasovacie meno, host názov a názov programu.
- sys.dm_os_wait_stats: Poskytuje kumulatívne štatistiky čakania pre celú inštanciu.
- sys.dm_exec_query_stats: Obsahuje súhrnné štatistiky výkonnosti pre dotazy uložené vo vyrovnávacej pamäti.
- sys.dm_io_virtuálny_súbor_štatistiky: Vráti štatistiky I/O pre dáta a súbory denníka.
- sys.dm_exec_sql_text: Načíta text SQL pre daný sql_handle alebo plan_handle.
- sys.dm_exec_query_plan: Vráti plán vykonávania pre dotaz uložený vo vyrovnávacej pamäti.
5.1.2 Vzorové dotazy na informácie o procese
Ak chcete replikovať funkcionalitu tably Procesy, môžete zadať dotaz:
SELECT
s.session_id AS [Session ID],
CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
s.login_name AS [Login],
ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), '') AS [Database],
ISNULL(t.task_state, '') AS [Task State],
ISNULL(r.command, '') AS [Command],
r.cpu_time AS [CPU Time],
r.total_elapsed_time AS [Elapsed Time],
r.wait_time AS [Wait Time],
r.wait_type AS [Wait Type],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
5.1.3 Vzorové dotazy pre štatistiky čakania
Ak chcete zobraziť štatistiky čakania podobné table Čakanie na zdroje:
SELECT TOP 10
wait_type AS [Wait Type],
wait_time_ms / 1000.0 AS [Wait Time (sec)],
waiting_tasks_count AS [Waiting Tasks],
wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
AND wait_type NOT LIKE '%IDLE%'
AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;
5.2 Používanie sp_WhoIsActive
sp_WhoIsActive je výkonná uložená procedúra vytvorená komunitou, ktorá poskytuje podrobnejšie informácie ako Monitor aktivity v jednej sade výsledkov.
5.2.1 Inštalácia sp_WhoIsActive
Inštalácia sp_WhoIsActive:
- Stiahnite si najnovšiu verziu z
http://whoisactive.com. - Stiahnutý súbor je SQL skript obsahujúci definíciu procedúry.
- Otvorte skript v SQL Server Štúdio manažmentu.
- Pripojte sa k svojmu SQL Server inštancie.
- Spustite skript na vytvorenie procedúry v hlavnej databáze.
- Udeľte oprávnenia na spustenie príslušným používateľom.
Keďže sp_WhoIsActive je nainštalovaný v hlavnom archíve, je prístupný z ľubovoľného kontextu databázy.
5.2.2 Základné príklady použitia
Najjednoduchší spôsob použitia sp_WhoIsActive je:
EXEC sp_WhoIsActive;
Toto vráti sadu výsledkov zobrazujúcich všetky aktívne relácie s ich dotazmi, typmi čakania, informáciami o blokovaní a využitím zdrojov.
Pre 10-sekundovú vzorku zobrazujúcu aktivitu počas tohto obdobia:
EXEC sp_WhoIsActive @delta_interval = 10;
Toto vypočítava delty pre metriky ako CPU a čítania, čím ukazuje, čo sa stalo počas týchto 10 sekúnd.
5.2.3 Pokročilé parametre
sp_WhoIsActive podporuje množstvo parametrov na prispôsobenie:
- @filter: Filtrujte výsledky podľa konkrétnych relácií, databáz alebo prihlásení.
- @typ_filtra: Zadajte, na čo sa filter vzťahuje (relácia, databáza, prihlásenie atď.).
- @get_plans: Zahrnúť do výsledkov plány vykonávania (nastaviť na 1).
- @get_locks: Zobraziť podrobné informácie o zámke (nastavené na 1).
- @get_transaction_info: Zobraziť podrobnosti transakcie (nastavené na 1).
- @zorné_poradie: Zoradiť výsledky podľa rôznych metrík (CPU, čítania, trvanie atď.).
- @destination_table: Vložte výsledky do tabuľky pre sledovanie histórie.
Príklad zobrazujúci plány zoradené podľa CPU:
EXEC sp_WhoIsActive
@get_plans = 1,
@sort_order = '[CPU] DESC';
5.3 Používanie systémových uložených procedúr
SQL Server zahŕňa tradičné uložené procedúry na monitorovanie aktivity, hoci poskytujú menej informácií ako DMV alebo Monitor aktivity.
5.3.1 sp_who a sp_who2
Procedúra sp_who zobrazuje základné informácie o relácii:
EXEC sp_who;
Procedúra sp_who2 poskytuje o niečo viac podrobností:
EXEC sp_who2;
Oba postupy zobrazujú ID relácií, prihlasovacie mená, čas CPU a informácie o blokovaní. Chýbajú im však podrobné informácie dostupné prostredníctvom DMV alebo Monitora aktivity. Sú most užitočné pre rýchle kontroly, keď potrebujete rýchlo minimum informácií.
5.3.2 Ďalšie užitočné systémové postupy
Medzi ďalšie systémové postupy monitorovania patria:
- sp_lock: Zobrazuje informácie o zámkoch (zastarané; použite namiesto toho sys.dm_tran_locks).
- sp_monitor: Zobrazuje štatistiky o SQL Server aktivitu.
- sp_help: Zobrazuje definície objektov a metadáta.
- DBCC SQLPERF: Zobrazuje využitie miesta v protokole transakcií a štatistiky čakania.
5.4 Vytváranie vlastných monitorovacích skriptov
Pre prostredia vyžadujúce špecifické monitorovanie nad rámec toho, čo poskytuje Activity Monitor, si môžete vytvoriť vlastné riešenia pomocou DMV.
5.4.1 Kompletný skript ekvivalentný monitoru aktivity
Tu je komplexný skript, ktorý replikuje most Funkcia monitora aktivity:
-- Processes Information
SELECT
s.session_id AS [Session ID],
CONVERT(CHAR(1), s.is_user_process) AS [User Process],
s.login_name AS [Login],
ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), N'') AS [Database],
ISNULL(t.task_state, N'') AS [Task State],
ISNULL(r.command, N'') AS [Command],
SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
((CASE r.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS [Statement],
st.text AS [Command Text],
r.cpu_time AS [CPU Time (ms)],
r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
r.wait_time AS [Wait Time (ms)],
r.wait_type AS [Wait Type],
r.wait_resource AS [Wait Resource],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
c.client_net_address AS [Net Address],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
-- Recent Expensive Queries
SELECT TOP 20
qs.execution_count /
DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
qs.total_worker_time / 1000 AS [CPU Time (ms)],
qs.total_physical_reads AS [Physical Reads],
qs.total_logical_writes AS [Logical Writes],
qs.total_logical_reads AS [Logical Reads],
qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.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) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;
5.4.2 Automatizácia monitorovania pomocou úloh SQL agenta
Vlastné monitorovacie skripty si môžete naplánovať pomocou SQL Server Zástupca:
- Vytvorte tabuľku na ukladanie výsledkov monitorovania.
- Upravte svoj monitorovací skript tak, aby vkladal výsledky do tejto tabuľky.
- In SQL Server Management Studio, rozbaliť SQL Server Činidlo v Prieskumníkovi objektov.
- Kliknite pravým tlačidlom myši jobs a zvoľte Nová práca.
- Nakonfigurujte úlohu tak, aby spúšťala monitorovací skript v pravidelných intervaloch.
- Nastavte upozornenia alebo správy na základe zhromaždených údajov.
Tento prístup umožňuje sledovanie histórie a analýzu trendov, ktoré Monitor aktivity neposkytuje.
6. Obmedzenia a aspekty monitorovania aktivity
Aj keď je Monitor aktivity cenný, pochopenie jeho obmedzení vám pomôže používať ho správne a v prípade potreby ho doplniť ďalšími nástrojmi.
6.1 Pochopenie réžie monitora aktivity
Monitor aktivity nie je zadarmo – spotrebúva serverové zdroje na zhromažďovanie a zobrazovanie informácií. Pochopenie tejto réžie vám pomôže používať ho zodpovedne.
6.1.1 Vplyv na serverové zdroje
Monitor aktivity spúšťa dotazy na systémové DMV pri každej aktualizácii. Tieto dotazy spotrebúvajú procesor, generujú logické čítania a môžu krátkodobo blokovať systémové tabuľky. Na vyťažených serveroch môže táto réžia ovplyvniť výkon.
Tably Procesy a Nedávne drahé dotazy sú obzvlášť nákladné, pretože musia skenovať potenciálne rozsiahle DMV a tabuľky vyrovnávacej pamäte. Na serveroch s tisíckami plánov dotazov uložených vo vyrovnávacej pamäti môže obnovenie Nedávnych drahých dotazov trvať niekoľko sekúnd.
Dokumentácia spoločnosti Microsoft varuje, že intervaly obnovovania kratšie ako 10 sekúnd môžu citeľne ovplyvniť výkon servera, najmä na už načítaných systémoch.
6.1.2 Najlepšie postupy pre interval obnovovania
Vyberte intervaly obnovovania vhodné pre vašu situáciu:
- 1-5 sekúnd: Len na okamžité riešenie kritických problémov na málo zaťažených serveroch. Nenechávajte Monitor aktivity spustený v týchto intervaloch.
- 10 sekúnd (predvolené): Rozumné pre most scenáre riešenia problémov a všeobecné monitorovanie.
- 30-60 sekúnd: Lepšia voľba pre produkčné servery s vysokou záťažou alebo pri dlhodobom monitorovaní.
- Iba manuálna obnova: V situáciách, keď chcete občas skontrolovať aktuálny stav bez neustáleho dotazovania.
Po dokončení prešetrovania vždy zatvorte Monitor aktivity. Nenechávajte ho spustený nepretržite, najmä ak nejde o viacero inštancií od rôznych používateľov.
6.2 Problémy so zoskupovaním typov čakania
Prístup Monitora aktivity ku kategorizácii čakaní síce zjednodušuje zobrazenie, ale môže zatieniť dôležité diagnostické informácie.ostické informácie.
6.2.1 Ako monitor aktivity zoskupuje čakania
SQL Server Sleduje stovky rôznych typov čakania, pričom každý z nich označuje konkrétny zdroj alebo stav. Monitor aktivity ich zoskupuje do širokých kategórií, ako napríklad „Blokovanie vyrovnávacej pamäte“, „Zámok“ a „Pamäť“.
Napríklad kategória „Buffer Latch“ zahŕňa PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX a niekoľko ďalších špecifických typov čakania. Hoci všetky súvisia s prístupom na stránku, majú rôzne príčiny a riešenia.
Spoločnosť Microsoft presne nedokumentuje, ktoré typy čakania patria do ktorých kategórií, čo sťažuje pochopenie toho, čo skutočne vidíte.
6.2.2 Chýbajúce typy čakania
Monitor aktivity nezobrazuje všetky typy čakania. Most Je pozoruhodné, že často vynecháva čakania CXPACKET, ktoré indikujú paralelné vykonávanie dotazov. Čakania CXPACKET sú bežné a zvyčajne nie sú problematické, ale znalosť ich prítomnosti vám pomôže pochopiť charakteristiky pracovnej záťaže.
Keď Activity Monitor zobrazuje ako najvyššiu čakaciu hodnotu „Buffer Latch“, ale iné nástroje zobrazujú dominantný CXPACKET, rozdiel pochádza z logiky filtrovania a zoskupovania v Activity Monitore.
6.2.3 Prečo sú špecifické typy čakania dôležité
Poznanie konkrétneho typu čakania je dôležité pre riešenie problémov:
- PAGELATCH_EX: Často indikuje konflikt dočasných databáz na stránkach alokácie. Riešenie zahŕňa pridanie ďalších súborov s údajmi dočasnej databázy.
- PAGELATCHE_SH: Môže naznačovať aktívne stránky v používateľských tabuľkách. Riešenie zahŕňa rozdelenie alebo reorganizáciu indexu.
- ZATÁČANIE_STRANKY: Bežné počas aktualizácií. Môže skôr naznačovať normálnu prevádzku ako problém.
Monitor aktivity zoskupuje všetky tieto položky pod položkou „Buffer Latch“, čo sťažuje diagnostiku. Nástroje ako sp_WhoIsActive a dotazy DMV zobrazujú špecifické typy čakania.
6.3 Presnosť a aktuálnosť údajov
Monitor aktivity poskytuje zobrazenie takmer v reálnom čase, ale „takmer“ je kľúčové slovo. Pochopenie jeho metódy zhromažďovania údajov vám pomôže správne interpretovať výsledky.
6.3.1 Snímka vs. nepretržité monitorovanie
Monitor aktivity zobrazuje snímky k určitému bodu v čase vytvorené v každom intervale obnovovania. Udalosti, ktoré sa vyskytnú medzi snímkami, sa nezaznamenávajú. Ak dotaz beží 2 sekundy a vy obnovujete každých 10 sekúnd, môže sa zobraziť raz alebo vôbec nie, v závislosti od načasovania.
To znamená, že Monitor aktivity vyniká v hľadaní pretrvávajúcich problémov (blokovanie trvajúce niekoľko minút, konzistentne vysoké vyťaženie CPU), ale môže prehliadnuť prechodné problémy (krátke zablokovania, občasné nárasty dotazov).
6.3.2 Agregácia a odber vzoriek
Panel Nedávne drahé dotazy zobrazuje agregované údaje od vloženia plánov dotazov do vyrovnávacej pamäte. Dva identické dotazy s rôznymi hodnotami parametrov sa zobrazujú ako jeden riadok, ak zdieľajú plán. Táto agregácia môže maskovať problémy s konkrétnymi kombináciami parametrov (problémy s analýzou parametrov).
Panel Čakanie na zdroje vypočítava miery porovnaním snímok. Ak sa štatistiky čakania medzi snímkami vynulujú (rar(ale je to možné), vypočítané sadzby môžu byť nesprávne.
6.4 Kedy NEPOUŽÍVAŤ Monitor aktivity
Monitor aktivity nie je vhodný pre každý scenár monitorovania. Rozpoznajte, kedy sú lepšou voľbou alternatívne nástroje.
6.4.1 Požiadavky na historickú analýzu
Monitor aktivity zobrazuje iba aktuálnu alebo nedávnu aktivitu. Neukladá historické údaje. Ak potrebujete analyzovať trendy v priebehu dní alebo týždňov, porovnať aktuálny výkon s východiskovými hodnotami alebo generovať správy o vzorcoch výkonu, Monitor aktivity nestačí.
Pre historickú analýzu použite SQL ServerVstavaný panel výkonu, rozšírené udalosti so súborom targets alebo monitorovacie riešenia tretích strán.
6.4.2 Potreby podrobných štatistík čakania
Ak potrebujete presné informácie o type čakania na pokročilé ladenie, zoskupovanie a filtrovanie v Monitore aktivity to znemožňuje. Namiesto toho použite priamo dotazy DMV alebo sp_WhoIsActive.
Pre komplexnú analýzu štatistík čakania použite priamy dotaz na sys.dm_os_wait_stats a manuálne odfiltrujte neškodné čakania.
6.4.3 Úvahy o produkčnom serveri
Na produkčných serveroch s vysokou záťažou môže byť réžia Monitora aktivity problematická. Viacerí správcovia databáz by nemali spúšťať Monitor aktivity súčasne na tom istom serveri.
Pre monitorovanie produkcie zvážte jednoduché alternatívy, ako sú plánované snímky DMV uložené v monitorovacej databáze alebo použite smerovanie iba na čítanie na monitorovanie sekundárnych replík v konfiguráciách Always On.
7. Najlepšie postupy pre používanie monitora aktivity
Dodržiavanie osvedčených postupov zaručuje, že z Monitora aktivity získate maximálnu hodnotu a zároveň minimalizujete negatívny vplyv na vaše servery.
7.1 Kedy používať Monitor aktivity
Monitor aktivity zažiari v špecifických situáciách. Používajte ho, keď jeho silné stránky zodpovedajú vašim potrebám.
7.1.1 Problémy s výkonom v reálnom čase
Monitor aktivity je ideálny, keď majú používatelia aktuálne problémy a potrebujete problém okamžite diagnostikovať. Zobrazenie v reálnom čase vám pomôže vidieť, čo sa práve deje.
Keď dostanete hlásenie, že „aplikácia je pomalá“, otvorenie Monitora aktivity by malo byť jedným z vašich prvých krokov. Môžete rýchlo zistiť, či je databáza zaneprázdnená, blokovaná alebo nečinná.
7.1.2 Vyšetrovanie spomalenia aplikácie
Keď konkrétna aplikácia prestane reagovať, Monitor aktivity vám pomôže určiť, či sú príčinou problémy s databázou. Filtrujte tablu Procesy podľa názvu aplikácie, aby ste videli iba aktivitu databázy danej aplikácie.
Ak aplikácia nevykazuje žiadnu aktivitu databázy, zatiaľ čo používatelia hlásia problémy, problém spočíva inde v databáze. Ak vidíte rozsiahle blokovanie alebo drahé dotazy, našli ste vinníka.
7.1.3 Rýchle kontroly stavu
Monitor aktivity poskytuje vynikajúci ovládací panel na rýchle kontroly stavu počas bežnej správy. Otvorte ho, pozrite sa na grafy Prehľad a overte, či nič nevyzerá abnormálne.
Táto zbežná kontrola trvá len pár sekúnd a môže odhaliť problémy skôr, ako sa stanú kritickými. Urobte z nej súčasť svojej dennej rutiny.
7.2 Optimálne nastavenia konfigurácie
Vhodná konfigurácia Monitora aktivity zlepšuje jeho užitočnosť aj spotrebu zdrojov.
7.2.1 Odporúčané intervaly obnovovania
Prispôsobte interval obnovovania svojmu účelu:
- Aktívne riešenie problémov: 10 sekúnd poskytuje dobrú odozvu s primeranou réžiou.
- Rozšírené monitorovanie: 30 – 60 sekúnd znižuje vplyv na server počas dlhších pozorovacích období.
- Diagnóza kritického problému: 5 sekúnd poskytuje vysokú granularitu, keď sa počíta každá sekunda, ale používa sa krátko.
- Pravidelné zdravotné prehliadky: Manuálne obnovenie (interval 1 hodiny), keď aktívne nepozeráte.
Po dokončení nezabudnite zatvoriť Monitor aktivity. Nastavenie dlhého intervalu a zabudnutie naň plytvá zdrojmi servera.
7.2.2 Stratégie filtrovania
Použite filtre na zameranie sa na relevantné informácie a zníženie kognitívnej záťaže:
- Filtrovať procesy podľa databázy zobraziť iba aktivitu v konkrétnych databázach.
- Filtrovať podľa Login sledovať aktivitu konkrétneho používateľa.
- Filtrovať podľa Stav úlohy = RUNNING skryje nečinné relácie.
- Filtrovať podľa Využitie izolovať prevádzku od konkrétnych programov.
- Zobraziť iba neprázdne položky v Zablokované používateľom zobraziť iba blokujúce situácie.
7.2.3 Výber a triedenie stĺpcov
Vypracujte systematický prístup k kontrole údajov z monitora aktivity:
- Start s prehľadom: Skontrolujte grafy, či neobsahujú zjavné výkyvy alebo anomálie.
- Skontrolujte procesy, či neblokujú: Zoraďte podľa ID relácie a potom vyhľadajte hodnoty Blokované.
- Čakacie doby na kontrolu zdrojov: Zoraďte podľa kumulatívneho času čakania na identifikáciu úzkych miest v zdrojoch.
- Analýza drahých dopytov: Zoraďte podľa rôznych metrík (CPU, vykonania, čítania), aby ste našli rôzne typy problémov.
- Overenie pomocou panela I/O: Potvrďte, či dotazy náročné na I/O korelujú s vysokou aktivitou disku.
7.3 Integrácia s inými nástrojmi
Monitor aktivity funguje najlepšie ako súčasť širšej sady nástrojov, než ako samostatné riešenie.
7.3.1 Používanie s SQL Server Profiler
Monitor aktivity a SQL Server Profilery sa navzájom dobre dopĺňajú. Keď v Monitore aktivity identifikujete problematickú reláciu, kliknite na ňu pravým tlačidlom myši a vyberte Sledovanie procesu v SQL Server Profiler.
Týmto sa spustí Profiler s filtrami už nakonfigurovanými na zachytávanie iba aktivity danej relácie. Zobrazí sa kompletná postupnosť vykonaných príkazov, informácie o časovaní a chybové hlásenia – podrobnosti, ktoré Monitor aktivity neposkytuje.
Viac informácií o SQL Server Funkcie profilovača a pokročilé techniky sledovania, pozrite si naše obsiahly SQL Server Sprievodca profilerom.
7.3.2 Doplnenie o rozšírené udalosti
Rozšírené udalosti ponúkajú detailné monitorovanie s nízkymi nárokmi, ktoré zachytáva informácie, ktoré Monitor aktivity prehliada. Vytvorte relácie rozšírených udalostí na sledovanie špecifických udalostí, ako sú zablokovania, dlhotrvajúce dotazy alebo nadmerné rekompilácie.
Na okamžité vyšetrovanie použite Monitor aktivity a na priebežné monitorovanie a historickú analýzu rozšírené udalosti. Tieto dva nástroje riešia rôzne potreby.
Viac informácií o SQL Server Rozšírené možnosti udalostí a pokročilé techniky monitorovania, pozrite si naše obsiahly SQL Server Rozšírený sprievodca udalosťami.
7.3.3 Riešenia monitorovania tretích strán
Komerčné nástroje ako SolarWinds Database Performance Analyzer, Redgate SQL Monitor a Quest Spotlight poskytujú funkcie, ktoré Activity Monitoru chýbajú: upozornenia, historické trendy, plánovanie kapacity a automatická diagnostika.ostics.
Tieto nástroje sú cenným doplnkom k Monitoru aktivity, nie jeho náhradou. Monitor aktivity zostáva užitočný na rýchle kontroly a vyšetrovanie, aj keď sú k dispozícii sofistikované monitorovacie nástroje.
7.4 bežných chýb, ktorým sa treba vyhnúť
Pochopenie bežných chýb v Monitore aktivity vám pomôže používať ho efektívnejšie.
7.4.1 Ponechanie monitora aktivity spusteného nepretržite
Most Častou chybou je otvorenie Monitora aktivity a jeho ponechanie spusteného na neurčito. Tým sa plytvá zdrojmi servera a poskytuje sa malá hodnota, pretože aktívne nesledujete.
Zatvorte Monitor aktivity, keď ho aktívne nepoužívate. Ak potrebujete nepretržité monitorovanie, implementujte namiesto toho vhodné monitorovacie riešenie s plánovaným zberom údajov.
7.4.2 Prílišné spoliehanie sa len na Monitor aktivity
Monitor aktivity poskytuje jeden pohľad na stav servera. Nespoliehajte sa výlučne naň. Doplňte ho Monitorom výkonu systému Windows pre metriky na úrovni operačného systému, Rozšírenými udalosťami pre podrobné sledovanie a analýzou plánu vykonávania pre ladenie dotazov.
Monitor aktivity vám pomáha identifikovať problémy, ale ich riešenie si často vyžaduje ďalšie nástroje a hlbšiu analýzu.
Ďalšie informácie o SQL Server monitor výkonu v našom Kompletný sprievodca.
7.4.3 Ignorovanie historických trendov
Monitor aktivity zobrazuje aktuálny stav, ale problémy s výkonom majú často viditeľné vzorce až v priebehu času. Implementujte zhromažďovanie historických údajov, aby ste mohli porovnávať aktuálne metriky s východiskovými hodnotami a identifikovať trendy.
Bez historického kontextu si možno neuvedomíte, že dnešné „normálne“ využitie CPU je o 30 % vyššie ako východisková hodnota z minulého mesiaca, čo naznačuje postupné znižovanie.
8. Riešenie problémov s monitorom aktivity
Samotný Monitor aktivity niekedy má problémy. Vedieť, ako tieto problémy riešiť, predchádza frustrácii.
8.1 Monitor aktivity sa neotvorí alebo nezobrazuje žiadne údaje
Keď sa Monitor aktivity otvorí, ale zobrazuje prázdne panely alebo sa vôbec neotvorí, môže to byť spôsobené niekoľkými faktormi.
8.1.1 Problémy s povoleniami
Most Bežnou príčinou problémov s monitorom aktivity sú nedostatočné povolenia. Na overenie a vyriešenie:
- Skontrolujte si povolenia na úrovni servera:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name = 'VIEW SERVER STATE'; - Ak sa nevrátia žiadne riadky, nemáte povolenie na zobrazenie stavu servera.
- Požiadajte správcu servera o povolenie:
USE master; GRANT VIEW SERVER STATE TO [YourLogin]; - Po udelení povolení zatvorte a znova otvorte Monitor aktivity.
8.1.2 Problémy s kompatibilitou verzií
Používanie starej verzie SQL Server Management Studio na pripojenie k novšiemu SQL Server verzia môže spôsobiť zlyhania monitora aktivity. Nástroj nemusí rozumieť novým typom čakania alebo stĺpcom zobrazenia systému.
Vždy používajte verziu SSMS, ktorá sa zhoduje s vašou alebo je novšia. SQL Server verzia. Spoločnosť Microsoft poskytuje najnovší systém SSMS na bezplatné stiahnutie oddelene od SQL Server Samo o sebe.
8.1.3 Problémy s firewallom a sieťou
Monitor aktivity vyžaduje pripojenie k SQL Server inštancia na štandardných portoch (predvolene 1433). Ak sa môžete pripojiť cez Prieskumník objektov, ale Monitor aktivity zlyhá, pravidlá brány firewall môžu blokovať konkrétne pripojenia.
Overte, či sa váš klient môže dostať k SQL Server počítač na všetkých potrebných portoch. Skontrolujte bránu firewall systému Windows aj všetky sieťové brány firewall medzi klientom a serverom.
8.2 Monitor aktivity je trvalo pozastavený
Bežný problém, najmä v SQL Server 2019, otvára sa Monitor aktivity v pozastavenom stave a odmieta ho obnoviť.
8.2.1 Vysvetlenie pozastaveného stavu
Keď sa Monitor aktivity pozastaví, všetky panely zobrazujú stav „Pozastavené“ s tlačidlom na obnovenie, ktoré nemusí fungovať. Vďaka tomu nebudete môcť vidieť žiadnu aktivitu servera.
Pozastavený stav sa zvyčajne vyskytuje kvôli problémom s povoleniami, obmedzeniam vzdialeného pripojenia alebo chybám verzie SSMS, a nie kvôli úmyselnému pozastaveniu.
8.2.2 Bežné príčiny
Monitor aktivity môže prejsť do trvalého pozastaveného stavu z dôvodu:
- Chýba povolenie ZOBRAZIŤ STAV SERVERA na novších paneloch pridaných v poslednej dobe SQL Server verzia
- Vzdialené pripojenia sú zakázané na SQL Server inštancie
- Zlyhania overovania pre konkrétne systémové dotazy
- Chyby v konkrétnych zostaveniach SSMS, najmä vo verziách 18.0 až 18.3
- Problémy s pripojením medzi klientom a serverom
8.2.3 Kroky riešenia
Riešenie problémov s pozastaveným stavom Monitora aktivity:
- Aktualizácia SSMS: Stiahnite a nainštalujte najnovšie SQL Server Verzia pre Management Studio z webovej stránky spoločnosti Microsoft. Mnohé chyby pozastaveného stavu boli opravené v neskorších vydaniach.
- Overiť povolenia: Uistite sa, že máte povolenia na zobrazenie stavu servera a zobrazenie ľubovoľnej definície.
- Skontrolujte vzdialené pripojenia: Overte, či je SQL Server inštancia umožňuje vzdialené pripojenia:
EXEC sp_configure 'remote access';Ak je hodnota 0, požiadajte správcu o jej povolenie.
- Restart SSMS: Niekedy stačí jednoducho zatvoriť všetky okná a...tarting SQL Server Management Studio tento problém rieši.
- Pripojenie s overovaním systému Windows: Ak používate overovanie SQL, skúste namiesto toho overovanie systému Windows, pretože niekedy obchádza problémy s pozastavením súvisiace s overovaním.
8.3 Problémy s výkonom pri používaní monitora aktivity
Ak sa samotný Monitor aktivity spomalí alebo spôsobí zníženie výkonu servera, je potrebná úprava.
8.3.1 Zníženie réžie monitorovania
Ak chcete minimalizovať vplyv Monitora aktivity:
- Zvýšte interval obnovovania na 30 sekúnd alebo 1 minútu.
- Tably, ktoré aktívne nepoužívate, zatvoríte kliknutím na tlačidlo zbalenia.
- Keď sú tably zbalené, Monitor aktivity pre ne nevyhľadáva údaje.
- Vyhnite sa spúšťaniu viacerých inštancií Monitora aktivity súčasne.
- Úplne zatvorte Monitor aktivity, keď aktívne neskúmate problémy.
8.3.2 Alternatívne metódy monitorovania ľahkej techniky
Ak je Monitor aktivity pre vaše prostredie príliš náročný na zdroje, zvážte alternatívy:
- Priame dotazovanie na oddelenie DMV: Napíšte špecifické T-SQL dotazy, ktoré načítajú iba informácie, ktoré potrebujete.
- Použite sp_WhoIsActive: Táto uložená procedúra je vysoko optimalizovaná a zvyčajne má nižšiu réžiu ako Activity Monitor.
- Implementovať vzorkovanie: Naplánujte úlohy agenta SQL, ktoré pravidelne zaznamenávajú snímky údajov DMV a ukladajú výsledky do tabuliek na neskoršiu analýzu.
- Monitorovanie sekundárnych replík: In Vždy zapnuté skupiny dostupnosti, spustite Monitor aktivity na čitateľnom sekundárnom serveri namiesto primárneho servera.
8.4 Nepresné alebo chýbajúce informácie
Monitor aktivity niekedy zobrazuje informácie, ktoré sa zdajú byť nesprávne alebo neúplné.
8.4.1 Overovanie údajov s DMV
Keď sa výsledky monitora aktivity zdajú byť podozrivé, overte ich priamym dotazovaním podkladových DMV. Napríklad, ak panel Procesy nezobrazuje žiadne blokovanie, ale používatelia ho hlásia, dotazujte sa:
SELECT
blocking_session_id,
session_id,
wait_type,
wait_time,
wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;
Ak tento dotaz zobrazuje blokovanie, ktoré Monitor aktivity prehliadol, potvrdili ste problém so zobrazením.
8.4.2 Pochopenie načasovania obnovy údajov
Pamätajte, že Monitor aktivity zobrazuje snímky. Dotaz, ktorý sa spustil medzi intervalmi obnovovania, sa nezobrazí v zozname Nedávne drahé dotazy, pokiaľ jeho plán vykonávania nezostane vo vyrovnávacej pamäti.
Podobne štatistiky čakania v table Čakanie na zdroje odrážajú nahromadené údaje od poslednej snímky. Rýchlo sa meniace pracovné zaťaženia môžu pri každej aktualizácii vykazovať odlišné vzorce.
9. Pokročilé techniky monitorovania aktivity
Skúsení správcovia databáz používajú Activity Monitor sofistikovanými spôsobmi na dosiahnutie maximálneho výsledku diagnostiky.ostická hodnota.
9.1 Kombinovanie viacerých tabúľ pre analýzu koreňovej príčiny
Skutočná sila Monitora aktivity sa prejaví, keď porovnáte informácie na viacerých paneloch, aby ste pochopili zložité problémy s výkonom.
9.1.1 Korelácia čakaní s procesmi
Keď sa v table Čakanie na zdroje zobrazuje vysoký čas čakania v určitej kategórii, použite tablu Procesy na identifikáciu relácií, v ktorých dochádza k týmto čakaniam:
- Všimnite si kategóriu čakania s vysokým kumulatívnym časom čakania (napr. „Zamknuté“).
- Prepnite na tablu Procesy.
- Triediť podľa Typ čakania zoskupiť relácie podľa aktuálneho čakania.
- Vyhľadajte relácie zobrazujúce typy čakania v problematickej kategórii.
- Pre tieto stretnutia si preštudujte Čakajte na zdroj stĺpec, aby ste videli, ktoré databázové objekty sú zahrnuté.
- Kliknite pravým tlačidlom myši a vyberte položku podrobnosti zobraziť text dopytu.
Táto korelácia vám pomôže prejsť z „máme čakanie na zámky“ na „tento konkrétny dopyt čaká na zámky v tejto tabuľke“.
9.1.2 Prepojenie nákladných dotazov s problémami s I/O
Keď panel V/V súborov s údajmi zobrazuje vysokú aktivitu disku v konkrétnej databáze:
- Všimnite si, ktoré databázové súbory majú vysokú rýchlosť čítania alebo zápisu MB/s.
- Prepnúť na Nedávne drahé dopyty.
- Triediť podľa Fyzické čítania/s na identifikáciu dotazov, ktoré intenzívne čítajú z disku.
- Filtrujte alebo vizuálne identifikujte dotazy spustené v databáze s vysokým počtom vstupno-výstupných operácií.
- Skontrolujte plány vykonávania týchto dotazov, či sa v nich nenachádzajú skenovania tabuliek alebo chýbajúce indexy, ktoré spôsobujú nadmerné množstvo vstupno-výstupných operácií.
Táto viacpanelová analýza spája symptómy (vysoký počet diskových I/O) s príčinami (konkrétne neefektívne dotazy).
9.2 Používanie monitora aktivity na plánovanie kapacity
Hoci Monitor aktivity neukladá historické údaje, môžete ho strategicky použiť na pozorovania plánovania kapacity.
9.2.1 Identifikácia vzorcov špičkového používania
Monitorujte aktivitu servera v rôznych denných dobách, aby ste identifikovali vzorce používania:
- Otvorte Monitor aktivity počas známej špičky.
- Všimnite si maximálne hodnoty grafu % času procesora.
- Zaznamenajte maximálny počet čakajúcich úloh.
- Sledujte dávkové požiadavky/sekundu v čase špičky.
- Zdokumentujte najvyťaženejšie databázy v table Procesy.
- Pre porovnanie zopakujte mimo špičky.
Ak vyťaženosť procesora v čase špičky trvalo presahuje 80 %, blížite sa k limitom kapacity CPU. Podobne rastúci počet čakaní naznačuje rastúci súboj o zdroje.
9.2.2 Analýza trendov zdrojov
Aj keď Monitor aktivity zobrazuje aktuálny stav, môžete ho použiť na namátkovú kontrolu trendov zaznamenávaním kľúčových metrík v priebehu času:
- Každý deň v rovnakom čase robte snímky obrazovky panela Prehľad
- Zaznamenajte si maximálne hodnoty z každého grafu
- Porovnávajte týždenné údaje a identifikujte rastové trendy
- Sledujte postupné zvyšovanie priemerného času procesora alebo rýchlosti I/O
Toto manuálne sledovanie trendov dopĺňa sofistikovanejšie monitorovacie riešenia a pomáha odôvodniť rozšírenie kapacity.
9.3 Dokumentovanie východiskových hodnôt výkonnosti
Stanovenie základných metrík výkonnosti vám pomôže rozpoznať, kedy sa výkon znižuje.
9.3.1 Zachytávanie základných metrík
Počas období známeho dobrého výkonu dokumentujte metriky Monitora aktivity:
- Otvorte Monitor aktivity počas bežnej obchodnej prevádzky (nie počas špičky ani mimo špičky).
- Hodnoty v table Prehľad záznamov:
- Typický rozsah % času procesora
- Priemerný počet čakajúcich úloh
- Normálna rýchlosť I/O databázy
- Typické dávkové požiadavky/s
- Kategórie tably Čakanie na zdroje, ktoré zobrazujú most čakacia doba.
- Počet aktívnych procesov zvyčajne zdokumentujte v table Procesy.
- Zaznamenajte reprezentatívne metriky vykonávania dotazov z kategórie Nedávne drahé dotazy.
Túto základnú dokumentáciu si uschovajte pre budúce použitie pri vyšetrovaní problémov s výkonom.
9.3.2 Porovnanie súčasného a základného výkonu
Keď sa vyskytnú problémy s výkonom, porovnajte aktuálne hodnoty Monitora aktivity so zdokumentovanými východiskovými hodnotami:
- Je čas procesora výrazne vyšší ako základná hodnota? Zamerajte sa na dotazy náročné na procesor.
- Sú čakacie úlohy 2-3x vyššie ako základná úroveň? Preskúmajte čakanie na zdroje.
- Je I/O výrazne vyšší? Skontrolujte panel I/O súborov s údajmi a náročné dotazy.
- Sú dávkové požiadavky počas špičky nižšie ako základný riadok? Hľadajte blokovanie alebo problémy s pripojením.
Toto porovnanie vám pomôže identifikovať, čo sa zmenilo, a vhodne zamerať úsilie na riešenie problémov.
9.4 Vytváranie vlastných pracovných postupov monitorovania
Vypracujte systematické pracovné postupy pre bežné vyšetrovacie scenáre, aby ste zabezpečili dôkladnú a opakovateľnú analýzu.
9.4.1 Postupný proces vyšetrovania
Keď používatelia nahlásia problémy s výkonom, postupujte podľa konzistentného pracovného postupu:
- Rýchla kontrola zdravotného stavu: Otvorte Monitor aktivity a skenujte grafy v paneli Prehľad, či neobsahujú zjavné anomálie.
- Skontrolujte blokovanie: Rozbaľte tablu Procesy, v stĺpci Blokované používateľom vyfiltrujte položky Neprázdne.
- Identifikujte súperenie o zdroje: Panel Kontrola čakaní na zdroje zoradený podľa času čakania.
- Nájdite drahé dopyty: Preskúmajte nedávne drahé dotazy zoradené podľa CPU, potom vykonania a nakoniec čítania.
- Korelácia vzorov I/O: Prepojte náročné dotazy s aktivitou tably V/V súborov s údajmi.
- Zistenia dokumentu: Vytvorte snímky obrazovky a zaznamenajte relevantné ID relácií, typy čakania a podrobnosti o dotazoch.
- Hlboký ponor: Na podrobné preskúmanie identifikovaných problémov použite sledovania Profileru, analýzu plánu vykonávania a dotazy DMV.
9.4.2 Kritériá eskalácie
Stanovte kritériá pre to, kedy eskalovať problémy oproti pokračovaniu vo vyšetrovaní:
- Okamžite eskalovať: Blokovacie reťazce trvajúce viac ako 5 minút, čas procesora na 100 % po dobu viac ako 2 minút, kritické systémové procesy vykazujú stav POZASTAVENÉ.
- Eskalácia s analýzou: Opakujúce sa nákladné dotazy spotrebúvajúce viac ako 50 % CPU, konzistentne vysoké časy odozvy I/O > 50 ms, opakované zlyhanie pridelenia pamäte.
- Preskúmajte ďalej: ČasrarČakanie na vyriešenie v priebehu niekoľkých minút, dotazy s neoptimálnymi plánmi, ale s prijateľným výkonom, menšie blokovanie s trvaním <30 sekúnd.
10. Monitor aktivity v rôznych SQL Server verzia
Monitor aktivity sa vyvíjal v priebehu času SQL Server verzie, pričom každé vydanie prináša vylepšenia a občas aj nové problémy.
10.1 Monitor aktivity v SQL Server 2008 a novší
SQL Server V roku 2008 bol predstavený moderný dizajn monitora aktivity, ktorý sa dodnes do značnej miery nezmenil.
10.1.1 nové funkcie predstavené v SQL Server 2008
SQL Server Prepracovaný systém Monitora aktivity z roku 2008 priniesol významné vylepšenia:
- Grafický dashboard s grafmi v reálnom čase v paneli Prehľad
- Rozhranie rozbaľovacej/skladacej tably nahrádza staré zobrazenie iba v mriežke
- Panel Nedávne drahé dotazy zobrazujúci súhrnné údaje o výkonnosti dotazov
- Panel I/O dátových súborov na monitorovanie aktivity disku pre jednotlivé súbory
- Vylepšená tabla Čakania na zdroje s kategorizáciou čakaní
- Kontextové ponuky kliknutím pravým tlačidlom myši pre akcie procesu, ako je ukončenie relácií a spustenie Profileru
- Nastaviteľné intervaly obnovovania od 1 sekundy do 1 hodiny
Tieto zmeny transformovali Monitor aktivity z jednoduchého zoznamu procesov na komplexný monitorovací panel.
10.1.2 Zmeny oproti SQL Server 2005
SQL Server Monitor aktivity v roku 2005 bol oveľa obmedzenejší:
- Prístup cez priečinok Správa v Prieskumníkovi objektov, nie cez panel s nástrojmi
- Jedna mriežka zobrazujúca zoznam procesov so základnými informáciami
- Žiadne grafické diagramy ani viacero tabúľ
- Žiadne drahé dotazy ani monitorovanie I/O
- Obmedzené štatistiky čakania
Redizajn z roku 2008 predstavoval skôr kompletné prepracovanie než postupné zlepšenie.
10.2 Monitor aktivity v SQL Server 2014/2016
SQL Server V rokoch 2014 a 2016 došlo k postupným vylepšeniam základného zberu údajov v programe Activity Monitor, ale k malým vizuálnym zmenám.
10.2.1 Vylepšenia a rozšírenia
Medzi kľúčové vylepšenia v týchto verziách patrili:
- Lepší výkon pri monitorovaní serverov s tisíckami plánov uložených v vyrovnávacej pamäti
- Vylepšené možnosti filtrovania v table Procesy
- Zlepšená presnosť agregácie štatistík čakania
- Lepšie spracovanie triedenia a filtrovania stĺpcov s veľkými množinami výsledkov
- Efektívnejšie dotazy DMV znižujú režijné náklady na monitorovanie
Základné rozhranie zostalo konzistentné s SQL Server 2008, pričom sa zachovala oboznámenosť administrátorov.
10.3 Monitor aktivity v SQL Server 2019/2022
nedávny SQL Server Verzie pokračujú vo vývoji Monitora aktivity so zameraním na výkon a stabilitu.
10.3.1 Najnovšie funkcie a možnosti
SQL Server Monitor aktivít za roky 2019 a 2022 obsahuje:
- Podpora pre nové typy čakania zavedené v týchto verziách
- Vylepšený výkon vykresľovania v SSMS pomocou technológie WPF
- Lepšie spracovanie veľkého počtu aktívnych relácií
- Vylepšená kompatibilita s cloudovými platformami SQL
- Presnejšie metriky CPU a I/O
10.3.2 Známe problémy v novších verziách
SQL Server V roku 2019 bolo v Monitore aktivity zavedených niekoľko chýb:
- Trvalý pozastavený stav: Monitor aktivity často prechádza do stavu pozastavenia a neobnoví sa, najmä v SSMS 18.0 – 18.3. Opravené v novších verziách SSMS.
- Zlyhania vzdialeného pripojenia: Niektoré konfigurácie bránia spusteniu Monitora aktivity na vzdialených inštanciách. Medzi riešenia patrí povolenie špecifických príznakov sledovania alebo použitie novších zostavení SSMS.
- Problémy s povoleniami: Nové systémové zobrazenia vyžadujú dodatočné povolenia, ktoré nie sú jasne zdokumentované, čo spôsobuje prázdne zobrazenia aj pri zobrazení stavu servera.
Pri práci s SSMS vždy používajte najnovšiu verziu SQL Server 2019 a 2022, aby sa týmto problémom predišlo.
11. Praktické prípady použitia a príklady
Príklady z reálneho sveta demonštrujú, ako efektívne používať Monitor aktivity v bežných scenároch riešenia problémov.
11.1 Prípadová štúdia: Diagnostika pomalej webovej aplikácie
Vývojový tím hlási, že ich webová aplikácia sa stala neprijateľne pomalou, pričom načítanie stránky trvá 20 – 30 sekúnd namiesto bežných 2 – 3 sekúnd.
11.1.1 Počiatočné vyšetrovanie s panelom Prehľad
Otvorte Monitor aktivity a preskúmajte tablu Prehľad:
- Graf % času procesora zobrazuje využitie CPU na úrovni 85 – 95 %, čo je výrazne viac ako bežná základná hodnota 30 – 40 %.
- Počet čakajúcich úloh kolíše medzi 10 – 20 úlohami, v porovnaní s bežnou východiskovou hodnotou 0 – 3.
- Databázové I/O operácie vykazujú miernu aktivitu okolo 50 MB/s.
- Počet dávkových požiadaviek/s je nižší ako očakávaný, a to 100/s, v porovnaní s typickými 300 – 400/s počas pracovnej doby.
Tento vzorec naznačuje úzke hrdlo CPU so súperením o zdroje, čo spôsobuje zníženú priepustnosť. Server pracuje intenzívne, ale nespracováva veľa požiadaviek.
11.1.2 Identifikácia problematického dopytu
Rozbaľte tablu Nedávne drahé dotazy a zoraďte ich podľa počtu vykonaní/min:
- Najčastejší dopyt zobrazuje 15 000 spustení za minútu.
- Kliknite pravým tlačidlom myši a vyberte položku Upraviť text dopytu preskúmať dopyt.
- Dotaz je jednoduchý príkaz SELECT, ktorý načítava záznam jedného používateľa:
SELECT * FROM Users WHERE UserId = @UserId. - Tento dotaz by sa pri bežnom používaní aplikácie nemal vykonávať 15 000-krát za minútu.
Kliknite pravým tlačidlom myši na dotaz a vyberte Zobraziť plán realizáciePlán zobrazuje skenovanie tabuľky Používatelia s upozornením na chýbajúci index v stĺpci UserId.
Filtrujte tablu Procesy podľa aplikácie, aby sa zobrazili iba pripojenia webovej aplikácie. Viaceré relácie zobrazujú opakovane spustený rovnaký dotaz.
11.1.3 Riešenie a overenie
Problém pramení z dvoch faktorov: nadmerného počtu vykonávaných dotazov a chýbajúceho indexu. Kroky riešenia:
- Vytvorte chýbajúci index:
CREATE NONCLUSTERED INDEX IX_Users_UserId ON Users (UserId); - Kontaktujte vývojový tím o nadmernom počte vykonaní. Vyšetrovanie odhalilo problém s dotazom N+1 v kóde aplikácie, kde slučka načítava údaje o používateľovi pre každú položku v zozname.
- Upravte aplikáciu zlúčiť vyhľadávania používateľov do jedného dotazu pomocou klauzuly IN alebo parametra s tabuľkovou hodnotou.
- Overte opravu monitorovaním Monitora aktivity po nasadení. Využitie CPU klesne na 35 – 40 %, počet spustení za minútu sa zníži na 200 – 300 a časy odozvy aplikácií sa vrátia do normálu.
11.2 Prípadová štúdia: Riešenie problému s blokovaním
Používatelia hlásia, že systém zadávania objednávok sa periodicky zasekáva na 30 – 60 sekúnd, kým sa neobjaví v normálnej prevádzke.
11.2.1 Detekcia blokovacieho reťazca
Počas jednej z týchto udalostí zamrznutia otvorte Monitor aktivity a rozbaľte tablu Procesy:
- Triediť podľa ID relácie zobraziť všetky usporiadané stretnutia.
- Viaceré relácie zobrazujú hodnoty v Zablokované používateľom stĺpec, všetky ukazujú na ID relácie 73.
- Relácia 73 zobrazuje „1“ v Blokátor hlavy stĺpec, čím sa potvrdí, že ide o hlavnú príčinu.
- Typ čakania pre blokované relácie zobrazuje LCK_M_X, čo znamená, že čakajú na exkluzívne zámky.
- Čakajte na zdroj stĺpec ukazuje, že blokovanie sa nachádza v tabuľke Objednávky.
11.2.2 Analýza príčiny
Kliknite pravým tlačidlom myši na Relácia 73 a vyberte podrobnosti na zobrazenie príkazu:
UPDATE Orders
SET Status = 'Processing',
LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);
Táto aktualizácia je súčasťou dávkového spracovania, ktoré sa spúšťa každú hodinu. Kontrola Login stĺpec potvrdzuje, že relácia patrí ku kontu služby dávkového spracovania.
Dotaz drží zámky na tabuľke Objednávky počas spracovania tisícok objednávok. Počkajte pre blokované relácie sa neustále zvyšuje, čo potvrdzuje, že problémom je táto dlhotrvajúca operácia.
11.2.3 Implementácia opravy
Krátkodobé riešenie:
- Podrobnosti o relácii 73 dokumentu vrátane textu dotazu a trvania.
- Nechajte aktualizáciu dokončiť prirodzene, pretože ide o legitímne dávkové spracovanie.
- Po dokončení overte, či sa blokované relácie vymažú a obnovia sa normálne operácie.
Implementované dlhodobé riešenia:
- Znovu naplánovať dávkovú úlohu premávať mimo špičky (od 2:00 do 4:00 namiesto počas pracovných hodín).
- Úprava dávkového spracovania aktualizovať objednávky v menších dávkach po 100 záznamoch naraz a uvoľňovať zámky medzi dávkami.
- Pridať index v stĺpci OrderId, aby sa urýchlila operácia aktualizácie.
- Zvážte izoláciu SNAPSHOT pre operácie čítania, aby sa znížil vplyv blokovania.
11.3 Prípadová štúdia: Identifikácia nadmerného vykonávania dotazov
Monitorovanie databázy ukazuje, že využitie CPU sa za posledný mesiac postupne zvyšovalo, ale v kóde aplikácie nedošlo k žiadnym zjavným zmenám.
11.3.1 Zistenie abnormálneho počtu spustení
Otvorte Monitor aktivity a preskúmajte tablu Nedávne drahé dotazy:
- Triediť podľa Pokusy/min vidieť most často vykonávané dotazy.
- Najčastejší dopyt vykazuje 37 000 spustení za minútu – oveľa viac ako ktorýkoľvek iný dopyt.
- Kliknite pravým tlačidlom myši a vyberte položku Upraviť text dopytu.
- Dotaz načíta informácie o kategórii produktu:
SELECT CategoryId, CategoryName FROM ProductCategories WHERE CategoryId = @CategoryId; - Tento jednoduchý dopyt by mal byť rýchly a uložiteľný do vyrovnávacej pamäte, no napriek tomu sa vykonáva desaťtisíckrát za minútu.
11.3.2 Sledovanie k aplikačnému kódu
V paneli Procesy vyhľadajte relácie, ktoré vykonávajú tento dopyt:
- Poznámka: Využitie stĺpec zobrazuje „ProductCatalogService“.
- Kliknite pravým tlačidlom myši na jednu z týchto relácií a vyberte Sledovanie procesu v SQL Server Profiler.
- SQL Profiler odhaľuje, že dotaz sa opakovane vykonáva v rýchlom slede s rôznymi hodnotami CategoryId.
- Kontaktujte vývojový tím spravujúci ProductCatalogService so žiadosťou o kontrolu kódu.
Kontrola kódu odhalila problém: nedávna zmena načítava zoznamy produktov s kategóriami. Pre každý produkt vo výslednej sade (často viac ako 1 000 produktov) kód vykoná samostatné volanie databázy na načítanie informácií o kategórii – klasický problém s dotazom N+1.
11.3.3 Optimalizácia aplikácie
Implementujte správnu opravu:
- Úprava dotazu aplikácie použitie JOIN na načítanie produktov a ich kategórií v jednom volaní databázy:
SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE p.Active = 1; - Nasadenie aktualizovaného kódu a monitorovať Monitor aktivity.
- Overte opravu: Počet spustení za minútu pre dopyt kategórie klesol z 37 000 na menej ako 100 a celkové využitie CPU sa znížilo o 40 %.
- Zdokumentujte získané ponaučenie a zdieľajte ich s vývojovým tímom, aby ste predišli podobným problémom pri budúcich zmenách kódu.
12. Zistite potenciálne poškodenie databázy
Hoci Monitor aktivity nie je určený špeciálne na detekciu poškodenia databázy, určité vzory v jeho zobrazení môžu naznačovať základné problémy s poškodením, ktoré si vyžadujú ďalšie vyšetrovanie.
12.1 Príznaky možného poškodenia databázy
Ak existuje poškodenie databázy a dochádza k jej prístupu, občas sa môže zobraziť:
1. V paneli Procesy:
- Relácie uviaznuté v stave POZASTAVENÉ s nezvyčajnými typmi čakania
- Procesy zobrazujúce chybové stavy
- Dotazy opakovane zlyhávajú
2. V table Čakanie na zdroje:
- Nezvyčajné typy čakania súvisiace s I/O operáciami, ktoré by mohli naznačovať problémy s diskom (hoci to skôr naznačuje problémy s hardvérom než logické poškodenie)
3. V sekcii Nedávne drahé dopyty:
- Dotazy s abnormálne vysokým počtom fyzických čítaní, ak sa opakovane pokúšajú čítať poškodené stránky
12.2 Ďalšia kontrola pomocou DBCC CHECKDB
Keď Activity Monitor zobrazuje príznaky naznačujúce možné poškodenie, mali by ste okamžite spustiť príkaz DBCC CHECKDB na overenie integrity databázy. Tento príkaz prehľadá všetky stránky databázy, overí kontrolné súčty a skontroluje chyby logickej konzistencie.
Ak sa chcete dozvedieť viac o tom, ako používať príkaz DBCC CHECKDB na kontrolu a opravu poškodenia databázy, pozrite si naše komplexný sprievodca DBCC CHECKDB.
12.3 Oprava s profesionálnym náradím
Ak DBCC CHECKDB potvrdí poškodenie databázy, máte niekoľko možností na opravu:
- Preferovaným prístupom je obnovenie zo známej dobrej zálohy. Pozrite si náš komplexný sprievodca zálohovaním a obnovou SQL Server databázy.
- V prípade menších poškodení môže problém vyriešiť príkaz DBCC CHECKDB s príkazom REPAIR_REBUILD.
- Pre kritické databázy bez nedávnych záloh, profesionálne Softvér na obnovu SQL a služby často dokážu obnoviť dáta, ktoré vstavané možnosti opravy nedokážu.
13. Záver
SQL Server Monitor aktivity je neoceniteľným nástrojom pre správcov databáz, ktorý poskytuje okamžitý prehľad o výkone servera a pomáha rýchlo a efektívne diagnostikovať problémy.
13.1 Súhrn kľúčových bodov
V tejto príručke sme preskúmali, ako vám Monitor aktivity pomáha pochopiť a riešiť problémy SQL Server výkon:
- Monitor aktivity poskytuje prehľad o procesoch, čakaniach, dotazoch a I/O operáciách v reálnom čase prostredníctvom prehľadného grafického rozhrania.
- Päť tabúľ – Prehľad, Procesy, Čakanie na zdroje, Vstupno-výstupné operácie s dátovými súbormi a Nedávne drahé dotazy – ponúka jedinečný pohľad na aktivitu servera.
- Bežné scenáre riešenia problémov, ako je nadmerné vykonávanie dotazov, blokovacie reťazce a vysoké využitie CPU, sa dajú zvládnuť systematickým vyšetrovaním pomocou nástroja Activity Monitor.
- Hoci je Monitor aktivity výkonný, má svoje obmedzenia vrátane nedostatku historických údajov, zoskupovania typov čakania a réžie monitorovania, ktoré ovplyvňujú jeho aplikáciu.cabilnosť.
- Doplnením monitora aktivity o dotazy DMV, sp_WhoIsActive, rozšírené udalosti a potenciálne nástroje tretích strán sa vytvára komplexná stratégia monitorovania.
- Dodržiavanie osvedčených postupov pre intervaly obnovovania, zatváranie Monitora aktivity, keď sa nepoužíva, a kombinovanie viacerých tabúľ pre koreláciu maximalizuje jeho hodnotu a zároveň minimalizuje vplyv.
13.2 Monitor aktivity ako súčasť vašej sady nástrojov
Monitor aktivity by mal slúžiť ako váš prvý nástroj reakcie na vyšetrovanie výkonu, nie ako jediný nástroj. Jeho silnou stránkou je poskytovanie okamžitej viditeľnosti počas aktívneho riešenia problémov, čo vám pomôže rýchlo určiť, či je databáza úzkym hrdlom, a identifikovať, ktoré konkrétne aspekty si vyžadujú hlbšie preskúmanie.
Predstavte si Monitor aktivity ako analogický prístrojový panel vo vašom aute – okamžite vás upozorní, ak niečo nie je v poriadku, a pomôže vám identifikovať všeobecnú oblasť problémov. Rovnako ako vám prístrojový panel vášho auta nepovie presne, prečo sa rozsvietila kontrolka motora, Monitor aktivity vás upozorní na problémy bez toho, aby vždy odhalil ich úplnú príčinu. Táto hlbšia analýza si vyžaduje ďalšie nástroje a odborné znalosti.
Integrujte Monitor aktivity do širšej sady nástrojov, ktorá zahŕňa analýzu plánu vykonávania, sledovanie štatistík čakania, riešenia historického monitorovania a osvedčené postupy pre výkon. Používajte ho v spojení so správnymi stratégiami indexovania, technikami optimalizácie dotazov a plánovaním kapacity.
13.3 Pokračovanie vo vzdelávaní
Zvládnutie Activity Monitor je len jedným krokom k tomu, aby ste sa stali efektívnym správcom databázy. Pokračujte v rozvíjaní svojich zručností tým, že:
- Naučiť sa interpretovať realizačné plány a identifikovať neefektívne operácie
- Pochopenie SQL Server štatistiky čakania a ich dôsledky
- Štúdium techník návrhu a optimalizácie indexov
- Za poznaním SQL ServerArchitektúra a spôsob, akým spracováva dotazy
- Praktizovanie systematických metód riešenia problémov
- Získanie skúseností s rozšírenými udalosťami pre podrobné sledovanie
- Pochopenie úrovní izolácie transakcií a ich vplyvu na výkon
Každé vyšetrenie výkonu pomocou Monitora aktivity vás naučí niečo nové o tom, ako SQL Server fungujú a ako aplikácie interagujú s databázami. Zdokumentujte svoje zistenia, zdieľajte vedomosti s kolegami a vytvorte knižnicurary riešení bežných problémov.
13.4 Ďalšie zdroje
Rozšírte si svoje vedomosti pomocou týchto cenných zdrojov:
- Otvorte Monitor aktivity v SQL Server Management Studio (SSMS)
: Oficiálna SQL Server dokumentácia o tom, ako otvoriť Monitor aktivity v SQL Server Manažérske štúdio (SSMS).
- Activity Monitor
: Oficiálne SQL Server dokument o tom, ako používať Monitor aktivity.
14. Často kladené otázky (FAQ)
Otázka: Čo je to? SQL Server Monitor aktivity?
A: SQL Server Monitor aktivity je vstavaný nástroj v rámci SQL Server Management Studio, ktoré zobrazuje informácie o procesoch bežiacich na SQL Server inštancie a ich vplyv na serverové zdroje. Poskytuje grafický dashboard s piatimi panelmi zobrazujúcimi rôzne aspekty aktivity servera vrátane využitia procesora, čakajúcich úloh, rýchlosti I/O, aktívnych relácií a náročných dotazov.
Otázka: Ako otvorím Monitor aktivity v SSMS?
A: Monitor aktivity môžete otvoriť štyrmi spôsobmi: (1) Kliknite na ikonu Monitor aktivity na paneli s nástrojmi SSMS, (2) Kliknite pravým tlačidlom myši na SQL Server názov inštancie v Prieskumníkovi objektov a vyberte Activity Monitor, (3) Stlačte ctrl + ostatné + Aalebo (4) Nakonfigurujte SSMS tak, aby sa spúšťal automaticky prostredníctvom náradie -> možnosti -> prostredie -> Startrubice.
Otázka: Aké povolenia potrebujem na používanie Monitora aktivity?
A: Potrebujete ZOBRAZIŤ STAV SERVERA povolenie vidieť maost Informácie o monitore aktivity. Pre panel Vstup/výstup dátových súborov potrebujete aj VYTVORIŤ DATABÁZU, ZMENIŤ AKÚKOĽVEK DATABÁZU, Alebo ZOBRAZIŤ AKÚKOĽVEK DEFINÍCIU povolenia. Bez týchto povolení sa môže Monitor aktivity otvoriť, ale zobraziť prázdne panely.
Otázka: Prečo je môj Monitor aktivity pozastavený alebo nefunguje?
A: Monitor aktivity sa zvyčajne pozastaví kvôli problémom s povoleniami, zastaraným verziám SSMS alebo zakázaným vzdialeným pripojeniam. Riešenie: (1) Aktualizujte na najnovšiu verziu SSMS, (2) Overte, či máte povolenie ZOBRAZIŤ STAV SERVERA, (3) Skontrolujte, či sú vzdialené pripojenia povolené na SQL Server napríklad (4) Reztart SSMS a (5) Skúste sa pripojiť s overovaním systému Windows namiesto overovania SQL, ak je to možné.cabje.
Otázka: Aký je rozdiel medzi funkciou Activity Monitor a sp_WhoIsActive?
A: Monitor aktivity je grafický nástroj zabudovaný do SSMS, ktorý poskytuje organizované panely pre rôzne aspekty monitorovania. sp_WhoIsActive je bezplatná uložená procedúra vytvorená komunitou, ktorá vracia podrobné informácie o relácii v jednej sade výsledkov s konkrétnejšími typmi čakania, podrobnosťami blokovania a možnosťami prispôsobenia ako Monitor aktivity. Monitor aktivity je lepší na vizuálne skúmanie, zatiaľ čo sp_WhoIsActive vyniká v monitorovaní pomocou skriptov a poskytuje podrobnejšie informácie.
Otázka: Ovplyvňuje Monitor aktivity výkon servera?
A: Áno, Monitor aktivity má merateľné réžie, pretože dotazuje systémové DMV pri každom intervale obnovovania. Dopad sa zvyšuje s nižšími frekvenciami obnovovania – spoločnosť Microsoft varuje, že intervaly kratšie ako 10 sekúnd môžu ovplyvniť výkon servera. Monitor aktivity vždy zatvorte, keď ho aktívne nepoužívate, a na produkčných serveroch s vysokou záťažou zvážte intervaly obnovovania 30 – 60 sekúnd.
Otázka: Môžem získať údaje z monitora aktivity pomocou T-SQL?
A: Áno, Monitor aktivity dotazuje zobrazenia dynamickej správy systému, ako sú sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats a sys.dm_exec_query_stats. Tieto zobrazenia dynamickej správy systému môžete dotazovať priamo pomocou T-SQL na programovo získanie ekvivalentných informácií, čo umožňuje vlastné monitorovacie skripty a automatizovaný zber údajov.
Otázka: Aký je predvolený interval obnovovania?
A: Predvolený interval obnovovania je 10 sekúnd. Môžete ho zmeniť kliknutím pravým tlačidlom myši kdekoľvek v table Prehľad a výberom možnosti Interval obnoveniaa výberom z preddefinovaných možností: 1 sekunda, 5 sekúnd, 10 sekúnd, 30 sekúnd, 1 minúta alebo 1 hodina. Kratšie intervaly poskytujú viac zobrazení v reálnom čase, ale zvyšujú réžiu monitorovania.
Otázka: Ako môžem automaticky otvoriť Monitor aktivity v systémoch SSMS?tartúpka?
A: Konfigurácia automatického spustenia prostredníctvom možností SSMS: Prejdite na náradie -> možnosti -> prostredie -> StartrubiceA potom vyberte Otvorte Prieskumníka objektov a Monitor aktivity z Na startrubice rozbaľovacia ponuka. Monitor aktivity sa automaticky otvorí vždy, keď sa pripojíte k serveru v SSMS.
Otázka: Aké sú obmedzenia funkcie Monitor aktivity?
A: Medzi kľúčové obmedzenia patria: (1) Žiadne možnosti ukladania historických údajov ani sledovania trendov, (2) Typy čakania sú zoskupené do kategórií, a nie sú zobrazené konkrétne, (3) Niektoré typy čakania, ako napríklad CXPACKET, sa nemusia zobraziť, (4) Snímky v čase môžu prehliadať prechodné problémy, (5) Réžia monitorovania môže mať vplyv na vyťažené servery, (6) Žiadny mechanizmus upozornení na proaktívne monitorovanie a (7) Nemožno agregovať údaje z viacerých SQL Server inštancie. Pre tieto potreby doplňte Monitor aktivity o rozšírené udalosti, sady zberu údajov alebo monitorovacie nástroje tretích strán.
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 skupín dostupnosti Always On 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.


















