Sdílet prostřednictvím


Profiler dotazů (náhled)

Query Profiler v rozšíření MSSQL pro Visual Studio Code zaznamenává a monitoruje databázové aktivity v reálném čase pomocí rozšířených událostí. Během vývoje můžete sledovat živou aktivitu T-SQL, identifikovat pomalé operace a najít kritické body výkonu.

Query Profiler podporuje SQL Server (místní nebo v cloudových prostředích), Azure SQL Database a SQL databázi v koncových bodech Fabric. Během vývoje a testování můžete monitorovat aktivní relace, kontrolovat podrobnosti o provádění a porozumět tomu, jak vaše aplikace komunikuje s vaší databází.

Snímek obrazovky s mřížkou živých událostí Profileru dotazů zobrazující zachycenou databázovou aktivitu v rozšíření MSSQL pro Visual Studio Code

Návod

Profiler dotazů je aktuálně ve verzi Preview a může se změnit na základě zpětné vazby. Připojte se ke komunitě v diskuzích Na GitHubu a sdílejte nápady nebo nahlašujte problémy.

Features

Query Profiler v rozšíření MSSQL poskytuje následující možnosti:

  • Zachytávání dotazů a databázových aktivit v reálném čase v mřížce živých událostí
  • Nakonfigurujte nové relace pro profilování pomocí výběru šablony a pojmenování relací.
  • Řídí životní cyklus relace pomocí akcí Start, Pause, Resume, Stop a Clear Data .
  • Spusťte několik souběžných relací profilace a přepněte mezi nimi pomocí výběru relace.
  • Filtrování zachycených událostí podle textu, názvu databáze, doby trvání a dalších polí
  • Přepnutím automatického posouvání můžete sledovat nejnovější události nebo kontrolovat starší položky.
  • Export zachycených událostí do formátu CSV.
  • Otevřete a zobrazte existující .xel soubory v mřížce Profileru jen pro čtení.
  • Automaticky vyberte příslušnou šablonu pro cíle služby Azure SQL Database (Standard_Azure).
  • Funguje ve Windows, macOS a Linuxu na všech podporovaných platformách Visual Studio Code.

Předpoklady

  • Nainstalujte nejnovější verzi rozšíření MSSQL pro Visual Studio Code.
  • Aktivní připojení k podporované instanci SQL Serveru nebo Azure SQL Database.
  • Příslušná oprávnění serveru. K zahájení relace profilování potřebujete ALTER ANY EVENT SESSION oprávnění (nebo ekvivalentní).

Spuštění profileru dotazů

Profiler dotazů můžete spustit ze zobrazení Připojení nebo z palety příkazů.

Ze zobrazení Připojení:

  1. V zobrazení Připojení klikněte pravým tlačítkem myši na instanci SQL Serveru.

  2. Vyberte Spustit profiler dotazů (Preview).

    Snímek obrazovky zobrazující možnost Spustit profiler dotazů v kontextové nabídce Připojení

Z palety příkazů:

  1. Otevřete paletu příkazů (Ctrl+Shift+P nebo Cmd+Shift+P).

  2. Vyberte MSSQL: Spusťte profiler dotazů.

  3. Pokud není aktuálně aktivní žádné připojení, vyberte po zobrazení výzvy připojení.

Panel dotazového profileru se otevře a je svázán s vybraným připojením.

Vytvořte relaci profilování

Když se panel Query Profileru otevře bez aktivní relace, zobrazí se obrazovka Nová relace.

  1. Ověřte nebo změňte připojení pro profilovací relaci.

  2. V rozevíracím seznamu vyberte šablonu . Dostupné šablony závisí na cíli připojení.

    Šablony SQL Serveru (místní):

    Template Zachycené události Description
    Standard_OnPrem sql_batch_completed, sql_batch_starting, rpc_starting, rpc_completed, sp_statement_starting, sp_statement_completed, attention, existing_connection, login, logout Komplexní šablona profilování, která zachycuje dávkové aktivity SQL a RPC, události na úrovni příkazů uložených procedur a události připojení. Poskytuje nejpodrobnější zobrazení aktivity serveru.
    TSQL_OnPrem sql_batch_completed, sql_batch_starting, existing_connection, , loginlogout Zjednodušená šablona zaměřená na dávkové spouštění T-SQL Zaznamenává události dávkového spuštění a dokončení bez uložených procedur nebo podrobností RPC, což snižuje režii pro scénáře, kdy je potřeba jenom aktivita dotazů nejvyšší úrovně.
    TSQL_Locks sql_batch_completed, sql_batch_starting, lock_acquired, lock_released, existing_connection, , loginlogout Zachytává dávkové události T-SQL spolu s událostmi získání a uvolnění zámku. Užitečné při diagnostice problémů s blokováním, zablokováním a kolizí zámků.
    TSQL_Duration sql_batch_completed(filtrováno: doba trvání >= 1000 mikrosekund), sql_batch_starting, existing_connection, , loginlogout Zachycuje dávkové události T-SQL a filtruje sql_batch_completed, aby zahrnovaly pouze dávky, které trvají 1 milisekundu nebo déle. Užitečné pro identifikaci pomalých dotazů a snížení šumu z rychle spouštěných příkazů.

    Azure SQL Database a SQL databáze v šablonách Fabric:

    Template Zachycené události Description
    Standard_Azure sql_batch_completed, sql_batch_starting, rpc_starting, , rpc_completedattention, existing_connection, , loginlogout Standardní šablona profilace pro Azure SQL Database Zaznamenává dávkové operace SQL a činnosti RPC včetně připojovacích událostí. Podobá se Standard_OnPrem, ale neobsahuje události na úrovni příkazu uložené procedury.
    TSQL_Azure sql_batch_completed, sql_batch_starting, existing_connection, , loginlogout Zjednodušená šablona profilace T-SQL pro Azure SQL Database Zaznamenává události dávkového spouštění bez podrobností RPC nebo uložené procedury.

    Poznámka:

    Azure SQL Database a SQL databáze v šablonách Fabric vytvářejí relace omezené na databázi (ON DATABASE) místo na server. Pro tato připojení nejsou dostupné šablony s filtrem pro uzamčení a dobu trvání.

    Snímek obrazovky s rozevíracím seznamem pro výběr šablony zobrazující dostupné šablony profileru

  3. Zadejte název relace. Stisknutím klávesy Enter akci potvrďte nebo stisknutím klávesy Escape akci zrušíte.

    Snímek obrazovky s výzvou k zadání názvu relace pro novou relaci Profileru dotazů

Okno přejde do zobrazení živých událostí a relace Profileru se vytvoří prostřednictvím služby SQL Tools.

Monitorování živých událostí

Při spuštění relace profilace streamuje mřížka událostí zachycené události v chronologickém pořadí. V mřížce se zobrazí následující sloupce na základě vybrané šablony:

  • EventClass: Typ zachycené události, například sql_batch_starting nebo rpc_completed.
  • TextData: Příkaz T-SQL nebo text události.
  • ApplicationName: Aplikace, která událost vygenerovala.
  • LoginName: Přihlášení přidružené k události.
  • ClientProcessID: Identifikátor procesu klienta.
  • SPID: ID procesu serveru.
  • Čas zahájení: Časové razítko události.
  • CPU: Spotřebovaná doba procesoru.
  • Čtení: Počet logických čtení.
  • Zápisy: Počet logických zápisů.
  • Doba trvání: Doba provádění události.
  • DatabaseName: Databáze, ve které došlo k události.
  • HostName: Hostitelský počítač, který událost vygeneroval.

Akce panelu nástrojů

Panel nástrojů poskytuje pro aktivní relaci následující ovládací prvky:

Činnost Description
Nová relace Otevře nový proces relace pro vytvoření další profilovací relace.
Start Obnoví streamování událostí pro pozastavenou nebo zastavenou relaci.
Stop Zastaví relaci profilace. Nepřicházejí žádné nové události, ale zachycené události zůstanou viditelné pro kontrolu, filtrování a export.
Pauza Dočasně zastaví aktualizaci mřížky. V uživatelském rozhraní se zobrazuje ukazatel Pozastaveno .
Vymazat data Vymaže všechny řádky z mřížky aktuální relace. Pokud relace stále běží, nové události i nadále vyplňují mřížku.
Vymazat všechny filtry Odebere všechny aktivní filtry sloupců a obnoví zobrazení celé události.
Rychlé filtrování všech sloupců... Vyhledávání ve všech sloupcích za účelem rychlého vyhledání odpovídajících událostí
Exportovat do souboru CSV Exportuje zachycené události aktuální relace do souboru CSV.
Automatické posouvání Přepíná, jestli se mřížka při příchodu nových událostí posune na nejnovější řádek. Automatické posouvání je ve výchozím nastavení zapnuté pro nové relace.

Filtrování událostí

Pomocí filtrů sloupců můžete zúžit mřížku událostí a zaměřit se na relevantní aktivitu. Každé záhlaví sloupce obsahuje ikonu filtru, která otevře filtr specifický pro datový typ daného sloupce.

Filtrování podle hodnot sloupců (napříkladDatabaseName)ApplicationName

  1. Vyberte ikonu filtru v záhlaví sloupce, například DatabaseName.

  2. V rozevíracím seznamu filtru vyhledejte hodnoty pomocí vyhledávacího pole nebo vyberte a zrušte výběr konkrétních položek ze seznamu zaškrtávacích políček.

  3. Výběrem možnosti Použít vyfiltrujte mřížku. Výběrem možnosti Vymazat odeberete filtr pro tento sloupec.

    Snímek obrazovky s filtrem sloupce DatabaseName zobrazující seznam dostupných databází

Filtrování podle číselných hodnot (například Duration)

  1. Vyberte ikonu filtru u číselného sloupce, například Duration.

  2. Zvolte relační operátor (například =, >, <) a zadejte číselnou prahovou hodnotu.

  3. Výběrem možnosti Použít vyfiltrujte mřížku.

    Snímek obrazovky s filtrem sloupce Doba trvání s číselným relačním operátorem a vstupem hodnoty

Pokud jsou aktivní jeden nebo více filtrů, zobrazí se pod panelem nástrojů filtrované čipy zobrazující sloupce, které se filtrují. Výběrem symbolu X na čipu tento filtr odeberete nebo výběrem možnosti Vymazat všechny filtry na panelu nástrojů obnovíte všechny filtry najednou.

Snímek obrazovky s aktivními čipy filtru zobrazující použité filtry DatabaseName a ApplicationName

Poznámka:

Filtry se aplikují na straně klienta na aktuálně zobrazené události i na nové události streamované během relace.

Spravovat více relací

Profiler dotazů podporuje souběžné spouštění více relací profilace, z nichž každý má vlastní připojení, šablonu a vyrovnávací paměť událostí.

  1. Výběrem možnosti Nová relace na panelu nástrojů vytvořte jinou relaci. Nová relace může cílit na stejné nebo jiné připojení.

  2. K přepínání mezi relacemi použijte rozevírací seznam Selektor relace. Každá relace zobrazuje svůj stav (Spuštěno, Pozastaveno nebo Zastaveno) s vizuálním indikátorem.

  3. Při přepínání relací:

    • Mřížka událostí se aktualizuje, aby zobrazovala zachycené události vybraného sezení.
    • Akce panelu nástrojů se aplikují na vybranou relaci.

Export zachycených událostí

Zachycené události můžete exportovat z relace profilace do souboru CSV pro offline kontrolu nebo sdílení.

  1. Na panelu nástrojů vyberte Exportovat do souboru CSV . Export je dostupný bez ohledu na to, jestli je relace spuštěná, pozastavená nebo zastavená.

  2. Zvolte umístění a název souboru CSV.

Exportovaný soubor obsahuje události, které jsou aktuálně viditelné v mřížce relace.

Otevření existujícího souboru XEL

V mřížce Query Profileru můžete otevřít a zkontrolovat dříve zachycené trasovací soubory rozšířených událostí (.xel).

  1. Otevřete paletu příkazů (Ctrl+Shift+P nebo Cmd+Shift+P).

  2. Vyberte MSSQL: Otevřete soubor Profiler XEL....

  3. Procházejte k souboru .xel, který chcete otevřít, a vyberte ho.

Soubor se otevře na panelu Profileru jen pro čtení. Události se načítají a zobrazují ve stejné mřížce s možnostmi filtrování. Ovládací prvky Start, Pause a Stop nejsou k dispozici, protože soubor není živá relace.

Podporované scénáře

Profiler dotazů funguje s následujícími cíli SQL Serveru a Azure SQL:

Target Podporované šablony
SQL Server (místní, virtuální počítače, kontejnery) Standard_OnPrem, TSQL_OnPrem, TSQL_Locks, TSQL_Duration
Azure SQL Database Standard_Azure

Poznámka:

Pokud vyberete nepodporovanou šablonu nebo se pokusíte o relaci na úrovni serveru ve službě Azure SQL Database, profiler dotazů zobrazí cílovou chybovou zprávu a navrhne příslušnou šablonu.

Omezení

  • V této verzi Preview není žádná integrace AI ani GitHub Copilotu.
  • Žádná korelace mezi databázemi nebo mezi servery nad rámec rozšířených událostí a aktuálních šablon.
  • Neukládá se ani nenačítá přednastavení filtru.
  • Nepřehrávání tras ani generování skriptů ze zachycených událostí.
  • Žádná offline analýza bez existujícího .xel souboru nebo živého připojení.
  • V této verzi Preview není zaručena podpora koncových bodů služby Azure SQL Managed Instance.

Názory a podpora

Pokud máte nápady, zpětnou vazbu nebo chcete zapojit komunitu, připojte se k diskuzi na adrese https://aka.ms/vscode-mssql-discussions. Pokud chcete nahlásit chybu, navštivte https://aka.ms/vscode-mssql-bugstránku . Pokud chcete požádat o novou funkci, přejděte na https://aka.ms/vscode-mssql-feature-request.