Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
V nástroji SQL Trace se události shromažďují, pokud se jedná o instance tříd událostí uvedené v definici trasování. Tyto události je možné vyfiltrovat ze sledování nebo zařadit do fronty k jejich cíli. Cílem může být soubor nebo objekty SMO (SQL Server Management Objects), které můžou používat informace o trasování v aplikacích, které spravují SQL Server.
Důležité
Trasovací nástroje SQL a SQL Server Profiler jsou zastaralé. Microsoft.SqlServer.Management.Trace obor názvů, který obsahuje objekty trasování a přehrání serveru Microsoft SQL Server, je také zastaralý.
Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.
Místo toho použijte Rozšířené události. Další informace o rozšířených událostechnaleznete v Rychlý start: Rozšířené události v SQL Serveru a SSMS XEvent Profiler.
Výhody trasování SQL
Microsoft SQL Server poskytuje Transact-SQL systémem uložené procedury pro vytváření trasování v instanci databázového stroje SQL Server. Tyto systémové uložené procedury lze použít z vlastních aplikací k ručnímu vytváření trasování místo použití SQL Server Profileru. Díky tomu můžete psát vlastní aplikace specifické pro potřeby vašeho podniku.
Architektura trasování SQL
Zdroje událostí můžou být libovolným zdrojem, který vytváří událost trasování, například dávkové úlohy Transact-SQL nebo události SQL Serveru, jako je například zablokování. Další informace o událostech naleznete v SQL Server Event Class Reference. Jakmile dojde k události a když je třída události zahrnuta do definice sledování, shromažďují se informace o události sledováním. Pokud byly filtry definované pro třídu událostí v definici trasování, použijí se filtry a informace o události trasování se předají do fronty. Informace o trasování z fronty jsou buď zapisovány do souboru, nebo je může SMO používat v aplikacích, jako je SQL Server Profiler. Následující diagram znázorňuje, jak SQL Trace shromažďuje události během sledování.
Terminologie trasování SQL
Následující termíny popisují klíčové koncepty trasování SQL.
Event
Provedení akce v instanci databázového systému Microsoft SQL Server.
Datový sloupec
Atribut události.
Třída události
Typ události, kterou lze sledovat. Třída události obsahuje všechny datové sloupce, které mohou být hlášeny událostí.
Kategorie události
Skupina souvisejících tříd událostí.
Stopa (podstatné jméno)
Kolekce událostí a dat vrácených databázovým strojem.
Trasovat (sloveso)
Shromažďování a monitorování událostí v instanci SQL Serveru
Tracedefinition
Kolekce tříd událostí, datových sloupců a filtrů, které identifikují typy událostí, které se mají shromažďovat během trasování.
Filtr
Kritéria, která omezují události shromážděné v trasování.
Trasovací soubor
Soubor vytvořený při uložení trasování.
Template
Ve SQL Server Profiler se nachází soubor, který definuje třídy událostí a datové sloupce, jež se mají shromažďovat v trasování.
Tabulka trasování
V SQL Server Profileru se vytvoří tabulka, když se trasování uloží do tabulky.
Použití datových sloupců k popisu vrácených událostí
Sql Trace používá datové sloupce ve výstupu trasování k popisu událostí vrácených při spuštění trasování. Následující tabulka popisuje datové sloupce SQL Server Profiler, což jsou stejné datové sloupce jako sloupce používané trasováním SQL a označuje sloupce, které jsou ve výchozím nastavení vybrané.
| Sloupec s daty | Číslo sloupce | Description |
|---|---|---|
| * Název aplikace | 10 | Název klientské aplikace, která vytvořila spojení s instancí SQL Serveru. Tento sloupec se naplní hodnotami předanými aplikací, nikoli názvem programu. |
| BigintData1 | 52 | Hodnota (datový typ bigint ), která závisí na třídě události zadané v trasování. |
| BigintData2 | 53 | Hodnota (datový typ bigint ), která závisí na třídě události zadané v trasování. |
| * Binární data | 2 | Binární hodnota závislá na třídě události zachycené v rámci trasování. |
| * ClientProcessID | 9 | ID přiřazené hostitelským počítačem procesu, ve kterém klientská aplikace běží. Tento datový sloupec se vyplní, pokud klient poskytne ID procesu klienta. |
| ColumnPermissions | 44 | Označuje, zda bylo povolení ke sloupci nastaveno. Text příkazu můžete analyzovat a určit, která oprávnění se použila na které sloupce. |
| * CPU | 18 | Doba procesoru (v milisekundách), kterou událost používá. |
| ID databáze | 3 | ID databáze určené příkazem USE database_name nebo ID výchozí databáze, pokud pro danou instanci nebyl vydán žádný příkaz USE database_name. SQL Server Profiler zobrazuje název databáze, pokud je sloupec dat ServerName zachycen v trace a server je dostupný. Pomocí funkce DB_ID určete hodnotu databáze. |
| DatabaseName | 35 | Název databáze, ve které je příkaz uživatele spuštěný. |
| DBUserName | 40 | Uživatelské jméno klienta SYSTÉMU SQL Server. |
| * Doba trvání | 13 | Doba trvání události (v mikrosekundách). Server hlásí dobu trvání události v mikrosekundách (jeden miliontý nebo 10–6 sekundy) a dobu využití procesoru v milisekundách (jedna tisícovka nebo 10–3 sekundy). Grafické uživatelské rozhraní SQL Serveru Profiler zobrazuje sloupec Doba trvání ve výchozím nastavení v milisekundách, ale pokud je trasování uloženo v souboru nebo v tabulce databáze, hodnota sloupce Duration se zapisuje v mikrosekundách. |
| * EndTime | 15 | Čas ukončení události. Tento sloupec není vyplněný pro třídy událostí, které odkazují na událost, která se spouští, například SQL:BatchStarting nebo SP:Starting. |
| Error | 31 | Číslo chyby dané události. Často se jedná o číslo chyby uložené v sysmessages. |
| * EventClass | 27 | Typ třídy událostí, která je zachycena. |
| EventSequence | 51 | Pořadové číslo této události. |
| EventSubClass | 21 | Typ podtřídy události, která poskytuje další informace o jednotlivých třídách událostí. Například hodnoty podtřídy události pro událostní třídu Varování při spuštění představují typ varování při spuštění: 1 = Čekání dotazu. Dotaz musí před spuštěním počkat na prostředky; například paměť. 2 = Časový limit dotazu. Časový limit dotazu vypršel při čekání na spuštění požadovaných prostředků. Tento datový sloupec není vyplněný pro všechny třídy událostí. |
| GUID | 54 | Hodnota GUID, která závisí na třídě události zadané v trasování. |
| Jméno souboru | 36 | Logický název souboru, který je změněn. |
| Klika | 33 | Celé číslo používané rozhraním ODBC, OLE DB nebo DB-Library ke koordinaci provádění serveru. |
| Název hostitele | 8 | Název počítače, na kterém klient běží. Tento datový sloupec se vyplní, pokud klient zadá název hostitele. Pro určení názvu hostitele použijte funkci HOST_NAME. |
| IndexID | dvacet čtyři | ID indexu objektu ovlivněného událostí. Pro určení ID indexu objektu použijte sloupec indid v tabulce sysindexes system. |
| IntegerData | 25 | Celočíselná hodnota závislá na třídě události zaznamenané při sledování. |
| IntegerData2 | 55 | Celočíselná hodnota závislá na třídě události zaznamenané při sledování. |
| IsSystem | 60 | Určuje, jestli došlo k události v systémovém procesu nebo uživatelském procesu: 1 = systém 0 = uživatel |
| Linenumber | 5 | Obsahuje číslo řádku, který obsahuje chybu. U událostí, které zahrnují Transact-SQL příkazy, jako SP:StmtStarting, LineNumber obsahuje číslo řádku příkazu v uložené proceduře nebo dávce. |
| LinkedServerName | 45 | Název propojeného serveru. |
| * Loginname | 11 | Název přihlášení uživatele (buď bezpečnostní přihlášení SQL Serveru, nebo přihlašovací údaje Windows ve formě DOMÉNA\Uživatelské jméno). |
| LoginSid | 41 | Identifikátor zabezpečení (SID) přihlášeného uživatele. Tyto informace najdete v zobrazení sys.server_principalshlavní databáze. Každé přihlášení k serveru má jedinečné ID. |
| MethodName | 47 | Název metody OLEDB. |
| Mode | 32 | Celé číslo používané různými událostmi k popisu stavu, který událost požaduje nebo přijala. |
| NestLevel | 29 | Celé číslo, které představuje data vrácená @@NESTLEVEL. |
| NTDomainName | 7 | Doména Systému Microsoft Windows, do které uživatel patří. |
| * NTUserName | 6 | Uživatelské jméno systému Windows. |
| ObjectID | 22 | ID objektu přiřazené systémem. |
| ObjectID2 | 56 | ID souvisejícího objektu nebo entity, pokud je k dispozici. |
| Název objektu | 34 | Název objektu, na který se odkazuje. |
| ** Objecttype | 28 | Hodnota představující typ objektu zapojeného do události. Tato hodnota odpovídá sloupci typu v objektech sysobjects. |
| Ofset | 61 | Počáteční posun příkazu v rámci uložené procedury nebo dávky. |
| OwnerID | 58 | Pouze pro události uzamčení. Typ objektu, který vlastní zámek. |
| MajitelJméno | 37 | Uživatelské jméno uživatele databáze vlastníka objektu. |
| ParentName | 59 | Název schématu, ve kterém se objekt nachází. |
| Permissions | 19 | Celočíselná hodnota, která představuje typ zaškrtnutých oprávnění. Hodnoty jsou: 1 = VYBRAT VŠE 2 = AKTUALIZOVAT VŠE 4 = ODKAZY VŠE 8 = INSERT 16 = DELETE 32 = EXECUTE (pouze procedury) 4096 = SELECT ANY (alespoň jeden sloupec) 8192 = AKTUALIZOVAT JAKÝKOLIV 16384 = ODKAZY |
| ProviderName | 46 | Název zprostředkovatele OLEDB. |
| * Čte | 16 | Počet čtecích operací na logickém disku provedených serverem jménem události. Mezi tyto operace čtení patří všechna čtení z tabulek a vyrovnávacích pamětí během provádění příkazu. |
| ID požadavku | 49 | ID požadavku, který obsahuje tento výkaz. |
| RoleName | 38 | Název role aplikace, která je povolená. |
| Počet řádků | 48 | Počet řádků v dávce |
| název serveru | 26 | Název instance SQL Server, která je sledována. |
| SessionLoginName | 64 | Přihlašovací jméno uživatele, který relaci inicioval. Pokud se například připojíte k SQL Serveru pomocí Login1 a spustíte příkaz jako Login2, SessionLoginName zobrazí Login1, zatímco LoginName zobrazí Login2. Tento datový sloupec zobrazuje přihlášení SQL Serveru i Windows. |
| Závažnost | 20 | Úroveň závažnosti události výjimky. |
| SourceDatabaseID | 62 | ID databáze, ve které existuje zdroj objektu. |
| * SPID | 12 | ID relace (SPID), který SQL Server přiřadil tomuto procesu přidruženému k klientovi. |
| SqlHandle | 63 | 64bitový hash založený na textu ad hoc dotazu nebo na databázi a ID objektu SQL objektu. Tuto hodnotu lze předat sys.dm_exec_sql_text() pro načtení přidruženého textu SQL. |
| * Starttime | 14 | Čas, kdy akce začala, pokud byla dostupná. |
| State | 30 | Kód stavu chyby |
| Úspěch | 23 | Představuje, zda byla událost úspěšná. Mezi tyto hodnoty patří: 1 = úspěch. 0 = Selhání Například 1 znamená úspěšnou kontrolu oprávnění a 0 znamená neúspěšnou kontrolu. |
| TargetLoginName | 42 | Pro akce, které cílí na přihlášení, název cílového přihlášení; Pokud například chcete přidat nové přihlášení. |
| TargetLoginSid | 43 | V případě akcí, které cílí na přihlášení, identifikátor SID cílového přihlášení; Pokud například chcete přidat nové přihlášení. |
| TargetUserName | 39 | Pro akce, které cílí na uživatele databáze, jméno tohoto uživatele; Pokud například chcete uživateli udělit oprávnění. |
| * Textdata | 1 | Textová hodnota závislá na třídě události, která je zachycena v trasovacím záznamu. Pokud však trasujete parametrizovaný dotaz, proměnné se ve sloupci TextData nezobrazí s datovými hodnotami. |
| ID transakce | 4 | Systémově přidělené ID transakce. |
| Type | 57 | Celočíselná hodnota závislá na třídě události zaznamenané při sledování. |
| * Píše | 17 | Počet operací zápisu fyzických disků, které server provádí jménem události. |
| XactSequence | 50 | Token pro popis aktuální transakce. |
* Ve výchozím nastavení jsou tyto datové sloupce vyplněny pro všechny události.
** Další informace o datovém sloupci ObjectType naleznete v tématu ObjectType Trace Event Column.
Úlohy trasování SQL
| Popis úkolu | Téma |
|---|---|
| Popisuje, jak vytvářet a spouštět trasování pomocí Transact-SQL uložených procedur. | Vytváření a spouštění trasování pomocí uložených procedur Transact-SQL |
| Popisuje, jak vytvořit ruční trasování pomocí uložených procedur v instanci databázového stroje SQL Serveru. | Vytváření ručních trasování pomocí uložených procedur |
| Popisuje, jak uložit výsledky trasování do souboru, do kterého se zapisují výsledky trasování. | Uložení výsledků trasování do souboru |
| Popisuje, jak zlepšit přístup k trasovacím datům pomocí místa v dočasném adresáři. | Vylepšení přístupu k datům trasování |
| Popisuje, jak pomocí uložených procedur vytvořit trasování. | Vytvoření trasování (Transact-SQL) |
| Popisuje, jak pomocí uložených procedur vytvořit filtr, který načte pouze informace potřebné ke trasování události. | Nastavení filtru trasování (Transact-SQL) |
| Popisuje, jak pomocí uložených procedur upravit existující sled. | Úprava existujícího trasování (Transact-SQL) |
| Popisuje, jak pomocí předdefinovaných funkcí zobrazit uložené trasování. | Zobrazení uloženého trasování (Transact-SQL) |
| Popisuje, jak používat vestavěné funkce k zobrazení informací o filtru trasování. | Zobrazení informací o filtru (Transact-SQL) |
| Popisuje, jak pomocí uložených procedur odstranit stopu. | Odstranění trasování (Transact-SQL) |
| Popisuje, jak minimalizovat náklady na výkon vzniklé trasováním. | Optimalizace trasování SQL |
| Popisuje, jak filtrovat trasování, aby se minimalizovaly režijní náklady, které vzniknou během trasování. | Filtrovat trasu |
| Popisuje, jak minimalizovat množství dat, která trasování shromažďuje. | Omezení velikosti trasovacích souborů a tabulek |
| Popisuje dva způsoby plánování trasování v Microsoft SQL Serveru. | Plánování trasování |
Viz také
Šablony a oprávnění SQL Server Profileru
průvodce programováním objektů SMO (SQL Server Management Objects)