sql >> Databáze >  >> RDS >> Sqlserver

Jak zachytit a analyzovat události SQL Server

Když pracujete jako správce databáze SQL Server, měli byste mít dovednosti ponořit se hluboko do oceánu SQL Server Engine a zjistit, co se děje interně, abyste byli schopni detekovat, řešit a opravovat jakýkoli problém, kterému můžete čelit.
Můžete využívat protokoly, které jsou zapisovány motorem SQL Server lokálně ve formě protokolů SQL Server nebo externě ve formě protokolů událostí, ale nemůžete je považovat za jediný zdroj pro řešení problémů a ladění. operace.

SQL Server vám poskytuje řadu vestavěných funkcí, které lze použít ke shromažďování různých typů událostí serveru SQL Server. V tomto článku si projdeme tyto vestavěné funkce a zvážíme jeden z nejúčinnějších bezplatných nástrojů třetích stran, které lze použít ke shromažďování a analýze událostí SQL Server.

SQL Profiler

SQL Server Profiler je široce používán správci a vývojáři databází SQL Server ke shromažďování různých typů událostí o dotazech běžících na připojené instanci SQL Serveru a poté tyto informace použít ke zvýšení výkonu dotazů.

SQL Profiler vám poskytuje možnost zachytit širokou škálu událostí, specifikovat vlastnosti událostí, které vás zajímají, a filtrovat zachycená data na základě dříve specifikovaných hodnot vlastností. Můžete jít do hloubky toho, který uživatel provádí jaký typ akce na které databázové tabulce, z kterého stroje a v jakém čase přesně. Kromě toho SQL Profiler zobrazuje počet spotřebovaných zdrojů a ukazuje, zda byla akce dokončena nebo selhala s chybou.

Shromažďování událostí přes SQL Profiler se provádí buď pomocí řady existujících šablon, nebo vytvořením vlastní přizpůsobené šablony pomocí existujících událostí. Nejprve se musíte připojit k instanci SQL Server, ze které plánujete zaznamenávat události, zadáním názvu instance SQL Serveru, metody ověřování a přihlašovacích údajů požadovaných pro připojení k této instanci SQL Server, jak je uvedeno níže:

Po připojení k instanci SQL Server budete požádáni o zadání šablony pro události, které mají být shromažďovány, na základě účelu procesu profilování, jak je uvedeno níže:

Z předchozího obrázku můžete vidět, že SQL Profiler vám poskytuje možnost uložit výsledek trasování do souboru nebo do existující databázové tabulky. Pokud žádná z poskytnutých šablon nevyhovuje vašim požadavkům, můžete snadno přejít na Výběr událostí kartu a zaškrtnutí zobrazíte všechny události a sloupce a poté filtrovat zachycené události s vlastnostmi, které vás zajímají. Můžete například filtrovat a zachytit události pocházející z konkrétní databáze, uživatele databáze, databázové tabulky, hostitelského počítače atd. na, následovně:

Jakmile vyberete události, které vás zajímají, stačí kliknout na Spustit a začněte přijímat události z vybrané databáze, jak je znázorněno níže:

Vezměte v úvahu, že pokud nedefinujete velmi přesný filtr pro shromažďování pouze událostí, které vás zajímají, SQL Profiler shromáždí velké množství událostí, které bude těžké číst a analyzovat. Navíc to není Doporučuje se spustit nástroj SQL Profiler v produkčním prostředí, protože „sežere“ zdroje serveru a zabije jeho výkon. Pokud jej potřebujete nutně použít, zkuste zúžit rozsah událostí, které mají být zachyceny, pomocí přesných filtrů.

Rozšířené události

Aby bylo možné překonat problém se snížením výkonu způsobený používáním zastaralého nástroje SQL Profiler k zachycení různých typů událostí SQL, byla v SQL Server 2008 zavedena odlehčená, vysoce škálovatelná a konfigurovatelná funkce sledování výkonu, kterou lze použít při shromažďování užitečných informací. ze široké škály dostupných akcí s co nejmenší spotřebou zdrojů SQL, což pomáhá při odstraňování problémů a ladění výkonu dotazů SQL Server. Tato funkce zachycování událostí se nazývá SQL Server Extended Events .

Funkce Extended Events je dostupná přes SQL Server Management Studio z Extended Events možnost v části Správa uzel. Chcete-li vytvořit novou relaci Extended Events, klikněte pravým tlačítkem na Relace v části Rozšířené události uzel a vyberte Nová relace jak je uvedeno níže:

Z Nové relace v okně, máte možnost vybrat si z mnoha dostupných šablon s více předdefinovanými šablonami než šablony SQL Profiler, nebo jednoduše použít prázdnou šablonu a explicitně specifikovat události, které vás zajímají, jak je znázorněno níže:

Z Událostí můžete filtrovat události, které vás zajímají, na základě kategorie událostí a poté vybrat, které vlastnosti pro každou událost potřebujete načíst. Kromě toho můžete vytvořit přizpůsobený filtr pro zúžení rozsahu zachycených událostí, jak je znázorněno níže:

Úložiště vám nabízí různé možnosti uložení výsledku relace Extended Events. V tomto příkladu zachováme výsledek trasování do souboru Extended Events s nastavením nakonfigurovaným níže:

Po přizpůsobení relace Extended Events tak, aby vyhovovala vašim požadavkům na monitorování, klikněte na OK tlačítko pro vytvoření relace. Po vytvoření relace nezačne automaticky zachycovat události, pokud to nenakonfigurujete během procesu vytváření relace. Chcete-li, aby relace začala zachycovat události, klikněte pravým tlačítkem na vytvořenou relaci a vyberte možnost Zahájit relaci možnost, jak je uvedeno níže:

Chcete-li zobrazit zachycenou relaci, máte možnost otevřít fyzický soubor, který je dříve nakonfigurován pro ukládání událostí, nebo jednoduše klikněte pravým tlačítkem na vytvořenou relaci a vyberte možnost Sledovat živá data možnost, jak je uvedeno níže:

Otevře se nové okno zobrazující shromážděné události s hodnotami vlastností pro každou událost, jak je uvedeno níže:

Ačkoli můžete události Extended snadno vytvořit pomocí několika kliknutí, stále se potýkáte s určitými obtížemi, když se pokoušíte vybrat správnou událost ke sledování, a to kvůli složitosti konvence pojmenování událostí, která ztěžuje pochopení účelu každé události. Navíc GUI, ve kterém se zobrazují informace o relaci, stále není uživatelsky přívětivé, což komplikuje analýzu událostí a jejich vlastností. Od tohoto bodu stoupá potřeba uživatelsky přívětivějšího nástroje třetí strany, o kterém budeme hovořit v další části tohoto článku.

dbForge Event Profiler

dbForge Event Profiler pro SQL Server je ZDARMA nástroj, který vám poskytuje možnost zachytit a analyzovat události SQL Server a uložit data událostí do fyzického trasovacího souboru pro pozdější zkoumání.

dbForge Event Profiler pro SQL Server překonává problém se snížením výkonu SQL Profiler tím, že běží s nejvyšším možným výkonem a minimálním zatížením serveru s plnou podporou funkce Extended Events.

Co dělá dbForge Event Profiler pro SQL Server atraktivním nástrojem pro profilování událostí oproti funkci Extended Events, je Zvýraznění syntaxe dotazu funkce, která není dostupná ve funkci SQL Profiler nebo Extended Events. Kromě toho poskytuje možnost provádět filtrování a třídění operace v mřížce s výsledky trasování.

dbForge Event Profiler pro SQL Server lze snadno použít ke sledování různých typů činností z databázového stroje SQL Server, Analysis Services a Integration Services, k odstraňování problémů s dotazy T-SQL a problémů souvisejících s výkonem transakcí a ke sledování různých chyb SQL Server a varování.

Kromě toho lze dbForge Event Profiler pro SQL Server použít pro auditování různých aktivit uživatelů databáze SQL Server nebo provádění zátěžových testů nebo testů zajištění kvality. Můžete také jednoduše vytvořit své vlastní stopy a uložit je pro budoucí použití.

Chcete-li použít dbForge Event Profiler pro SQL Server k zachycení událostí SQL Serveru, musíte si jej zdarma stáhnout ze stránky dbForge Download a nainstalovat na váš SQL Server nebo počítač pomocí jednoduchého průvodce instalací, jak je uvedeno níže. :

Chcete-li zahájit proces instalace, klikněte na tlačítko INSTALOVAT tlačítko z Vítejte a na stránce Vybrat cíl zadejte umístění, kam chcete nástroj nainstalovat stránka níže:

Po určení umístění instalace klikněte na tlačítko Další knoflík. V části Zkratky určete, zda plánujete vytvořit ikonu zástupce pro nástroj dbForge na ploše, a poté klikněte na Další pokračovat:

Na stránce Přidružení souborů stránce, budete požádáni o zadání přípony souborů, které budou přidruženy k nástroji dbForge. Vyberte příponu souborů, které chcete pomocí tohoto nástroje otevřít, a klikněte na Další pokračovat:

Na stránce Optimalizace spouštění stránku, zkontrolujte a vyberte nejlepší možnost pro využití výkonu nástroje a poté klikněte na Další pokračovat:

Nyní se spustí proces instalace na základě vašeho výběru a ukazatel průběhu ukazuje stav procesu instalace, jak je znázorněno níže:

Po úspěšném dokončení instalace dbForge Event Profiler for SQL Server vás průvodce upozorní a poskytne vám možnost spustit nástroj přímo po zavření průvodce instalací, jak je uvedeno níže:

Úvodní stránka dbForge Event Profiler pro SQL Server je uživatelsky přívětivá a každý, kdo zná SSMS, se jí může snadno přizpůsobit. Chcete-li zahájit nové trasování, klikněte na tlačítko Nové možnost na pravé straně nástroje, jak je uvedeno níže:

V části Události serveru profilu musíte zadat informace o připojení, které budou použity pro připojení k instanci SQL Server, která bude monitorována. Pokud se jedná o první spuštění nástroje a neexistuje žádné dříve uložené připojení, klikněte na Nové připojení tlačítko, jak je znázorněno níže:

Ve Správci připojení okno Nové tlačítko vás přesune do okna známého připojení, kde budete požádáni o zadání názvu instance serveru SQL, režimu ověřování a pověření požadovaných pro připojení k serveru SQL. Po zadání informací o připojení klikněte na Testovat připojení pro kontrolu, zda jsou informace, které jste zadali, platné, jak je znázorněno níže:

Po poskytnutí informací o připojení instance serveru SQL Server vyberte, zda chcete použít existující šablonu, ze seznamu užitečných šablon, které slouží většině funkcí trasování, nebo zrušte její výběr a zadejte seznam událostí, které chcete v dalším kroku zachytit. Také můžete určit vlastnosti cílového souboru následovně:

Na stránce Události k zachycení Na stránce najdete uživatelsky příjemný a dobře roztříděný seznam událostí, které jsou popsány smysluplným způsobem, aniž byste se museli hlouběji ponořit a snažit se pochopit jejich význam, jak je uvedeno níže:

Níže uvedený obrázek také ukazuje všechny dostupné kategorie událostí s počtem událostí v každé kategorii. Nyní si můžete vychutnat chápání všech dostupných událostí podle názvu kategorie, jak je jasně znázorněno níže:

Po zadání seznamu událostí, které chcete zachytit, přejděte na Akce vám poskytuje možnost zadat seznam akcí, které chcete zachytit v aktuální relaci události, jak je uvedeno níže:

Na stránce Filtry událostí můžete také nakreslit své vlastní filtry, abyste minimalizovali počet shromážděných řádků, aby odpovídaly vašim požadavkům a usnadnili analýzu, jak je znázorněno níže:

Sloupce umožňuje určit, které sloupce chcete zobrazit v relaci aktuálních událostí. Načtení pouze sloupců obsahujících informace, které chcete zachytit, pomůže výrazně minimalizovat velikost trasovacího souboru a šířku vrácených řádků, což usnadní analýzu zachycených dat, jak je znázorněno níže:

Po přizpůsobení relace události můžete začít zaznamenávat události kliknutím na tlačítko Provést tlačítko z předchozího obrázku. Po zahájení relace událostí začne nástroj přímo zaznamenávat a zobrazovat události, jak je znázorněno níže:

Velkou výhodou je, že kliknutím na libovolnou událost se zobrazí její úplný popis se skriptem T-SQL zobrazeným uživatelsky příjemným barevným písmem v samostatném poli, což velmi usnadňuje kontrolu a analýzu, jak je uvedeno níže:

Kromě toho může dbForge Event Profiler pro SQL Server fungovat jako SSMS tím, že poskytuje možnost napsat nový dotaz T-SQL a spustit jej na připojené instanci SQL Server, jak je znázorněno níže:

Nástroj také zobrazuje vrácená data v užitečné mřížce, která zobrazuje název každého sloupce, typ dat a hodnotu, a to následovně:

Většina správců databáze SQL Server se setkala se situací, kdy se pokusili spustit velký soubor SQL Server pomocí SSMS, který selhal s chybou OutOfMemory. dbForge Event Profiler pro SQL Server překonává tento problém tím, že poskytuje funkci pro spuštění libovolného velkého skriptu T-SQL v rámci souboru SQL. Jediné, co musíte udělat, je vybrat Spustit velký skript z nabídky Databáze, poté vyberte umístění pro tento soubor skriptu, databázi, na které bude tento soubor spuštěn, a kódování, které je v tomto souboru použito, jak je jasně uvedeno níže:

Závěr

Ze všech předchozích příkladů můžete vidět, jak lze BEZPLATNÝ nástroj třetí strany dbForge Event Profiler for SQL Server použít k zachycení a analýze různých typů událostí SQL Server překonáním všech nevýhod běžných nástrojů pro zachycování událostí. Je to ZDARMA nástroj a rozhodně stojí za to ho používat.


  1. SQL Server:Indexové sloupce používané jako?

  2. Místnost pro Android – Jak vymazat sqlite_sequence pro všechny tabulky

  3. Eliminace MySQL Split-Brain v multi-cloudových databázích

  4. 5 způsobů, jak spočítat počet uživatelsky definovaných tabulek v databázi SQL Server