Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
I SQL Trace samlas händelser in om de är instanser av händelseklasser som anges i spårningsdefinitionen. Dessa händelser kan filtreras bort från spårningen eller placeras i kö för att nå sin destination. Målet kan vara en fil eller SQL Server Management Objects (SMO), som kan använda spårningsinformationen i program som hanterar SQL Server.
Viktigt!
SQL Trace och SQL Server Profiler är inaktuella. Microsoft.SqlServer.Management.Trace namnområde som innehåller Microsoft SQL Server Trace- och Replay-objekten är också inaktuella.
Den här funktionen tas bort i en framtida version av SQL Server. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen.
Använd utökade händelser i stället. Mer information om extended eventsfinns i Snabbstart: Utökade händelser i SQL Server och SSMS XEvent Profiler.
Fördelar med SQL Trace
Microsoft SQL Server tillhandahåller Transact-SQL systemlagrade procedurer för att skapa spårningar på en instans av SQL Server Database Engine. Dessa systemlagrade procedurer kan användas inifrån dina egna program för att skapa spårningar manuellt i stället för att använda SQL Server Profiler. På så sätt kan du skriva anpassade program som är specifika för företagets behov.
SQL-spårningsarkitektur
Händelsekällor kan vara alla källor som skapar spårningshändelsen, till exempel Transact-SQL batchar eller SQL Server-händelser, till exempel dödlägen. Mer information om händelser finns i Referens för SQL Server-händelseklass. När en händelse inträffar, om händelseklassen har inkluderats i en spårningsdefinition, samlas händelseinformationen in av spårningen. Om filter har definierats för händelseklassen i spårningsdefinitionen tillämpas filtren och spårningshändelseinformationen skickas till en kö. Från kön skrivs spårningsinformationen antingen till en fil eller kan användas av SMO i program, till exempel SQL Server Profiler. Följande diagram visar hur SQL Trace samlar in händelser under en spårning.
SQL-spårningsterminologi
Följande termer beskriver huvudbegreppen i SQL Trace.
Event
Förekomsten av en åtgärd i en instans av Microsoft SQL Server Database Engine.
Datakolumn
Ett attribut för en händelse.
Händelseklass
En typ av händelse som kan spåras. Händelseklassen innehåller alla datakolumner som kan rapporteras av en händelse.
Händelsekategori
En grupp relaterade händelseklasser.
Spårning (substantiv)
En samling händelser och data som returneras av databasmotorn.
Spåra (verb)
Samla in och övervaka händelser i en instans av SQL Server.
Spårdefinition
En samling händelseklasser, datakolumner och filter som identifierar vilka typer av händelser som ska samlas in under en spårning.
Filter
Villkor som begränsar de händelser som samlas in i en spårning.
Spårningsfil
En fil som skapas när en spårning sparas.
Template
I SQL Server Profiler, en fil som definierar de händelseklasser och datakolumner som ska samlas in i en spårning.
Spårningstabell
I SQL Server Profiler, en tabell som skapas när en spårning sparas i en tabell.
Använda datakolumner för att beskriva returnerade händelser
SQL Trace använder datakolumner i spårningsutdata för att beskriva händelser som returneras när spårningen körs. I följande tabell beskrivs SQL Server Profiler-datakolumnerna, som är samma datakolumner som de som används av SQL Trace, och anger de kolumner som är markerade som standard.
| Datakolumn | Kolumnnummer | Description |
|---|---|---|
| * ApplicationName | 10 | Namnet på klientapplikationen som skapade anslutningen till en instans av SQL Server. Den här kolumnen fylls i med de värden som skickas av programmet och inte namnet på programmet. |
| BigintData1 | 52 | Värde (bigint-datatyp ), som är beroende av händelseklassen som anges i spårningen. |
| BigintData2 | 53 | Värde (bigint-datatyp ), som är beroende av händelseklassen som anges i spårningen. |
| * Binära data | 2 | Det binära värdet som är beroende av händelseklassen som samlas in i traceloggen. |
| * ClientProcessID | 9 | Det ID som värddatorn tilldelar processen där klientapplikationen körs. Den här datakolumnen fylls i om klientprocess-ID:t tillhandahålls av klienten. |
| ColumnPermissions | 44 | Indikerar om en kolumnbehörighet sattes. Du kan parsa instruktionstexten för att avgöra vilka behörigheter som tillämpades på vilka kolumner. |
| * CPU | 18 | Mängden CPU-tid (i millisekunder) som används av händelsen. |
| Databas-ID | 3 | ID:t för databasen som anges av instruktionen USE database_name eller ID:t för standarddatabasen om ingen USE-database_name-instruktionhar utfärdats för en viss instans. SQL Server Profiler visar namnet på databasen om kolumnen ServerName-data fångas i spåret och servern är tillgänglig. Fastställa värdet för en databas med hjälp av funktionen DB_ID. |
| DatabaseName | 35 | Namnet på databasen där användardeklarationen körs. |
| DBUserName | 40 | SQL Server-användarnamnet för klienten. |
| * tidslängd | 13 | Varaktigheten (i mikrosekunder) för händelsen. Servern rapporterar varaktigheten för en händelse i mikrosekunder (en miljondel, eller 10–6, av en sekund) och hur lång CPU-tid som händelsen använder i millisekunder (en tusendel eller 10–3, av en sekund). Det grafiska användargränssnittet för SQL Server Profiler visar kolumnen Varaktighet i millisekunder som standard, men när en spårning sparas i antingen en fil eller en databastabell skrivs kolumnvärdet Varaktighet i mikrosekunder. |
| * Sluttid | 15 | Tidpunkt då händelsen avslutades. Den här kolumnen fylls inte i för händelseklasser som refererar till en händelse som startar, till exempel SQL:BatchStarting eller SP:Starting. |
| Error | 31 | Felnumret för en viss händelse. Det här är ofta felnumret som lagras i sysmessages. |
| * EventClass | 27 | Den typ av händelseklass som fångas upp. |
| EventSequence | 51 | Sekvensnummer för detta evenemang. |
| EventSubClass | 21 | Typen av händelseunderklass, som ger ytterligare information om varje händelseklass. Händelseunderklassvärden för händelseklassen Körningsvarning representerar till exempel typen av körningsvarning: 1 = Frågekö. Frågan måste vänta på resurser innan den kan köras. till exempel minne. 2 = Begäran tidsgräns. Förfrågan tidsgränsade medan den väntade på att nödvändiga resurser skulle bli tillgängliga. Den här datakolumnen är inte ifylld för alla händelseklasser. |
| GUID | 54 | GUID-värde som är beroende av händelseklassen som anges i spårningen. |
| Filnamn | 36 | Det logiska namnet på filen som har ändrats. |
| Handtag | 33 | Det heltal som används av ODBC, OLE DB eller DB-Library för att samordna serverkörningen. |
| Värdnamn | 8 | Namnet på datorn som klienten körs på. Den här datakolumnen fylls i om värdnamnet tillhandahålls av klienten. För att bestämma värdnamnet, använd funktionen HOST_NAME. |
| IndexID | 24 | ID:t för indexet för det objekt som påverkas av händelsen. För att bestämma index-ID för ett objekt, använd kolumnen indid i sysindexes systemtabell. |
| IntegerData | 25 | Heltalsvärdet som beror på händelseklassen som fångas i spårningen. |
| IntegerData2 | 55 | Heltalsvärdet som är beroende av händelseklassen som samlas in i spårningsinformationen. |
| IsSystem | 60 | Anger om händelsen inträffade i en systemprocess eller en användarprocess: 1 = system 0 = användare |
| Radnummer | 5 | Innehåller numret på den rad som innehåller felet. För händelser som involverar Transact-SQL-instruktioner, till exempel SP:StmtStarting, innehåller LineNumber radnumret för -instruktionen i den lagrade proceduren eller batchen. |
| LinkedServerName | 45 | Namnet på den länkade servern. |
| * LoginName | 11 | Namnet på användarens inloggning (antingen SQL Server-säkerhetsinloggning eller Windows-inloggningsuppgifterna i form av DOMÄN\Användarnamn). |
| LoginSid | 41 | Säkerhetsidentifieraren (SID) för den inloggade användaren. Du hittar den här informationen i sys.server_principals vy över huvuddatabasen . Varje inloggning till servern har ett unikt ID. |
| MethodName | 47 | Namnet på OLEDB-metoden. |
| Läge | 32 | Det heltal som används av olika händelser för att beskriva ett tillstånd som händelsen begär eller har mottagit. |
| NestLevel | 29 | Det heltal som representerar de data som returneras av @@NESTLEVEL. |
| NTDomainName | 7 | Den Microsoft Windows-domän som användaren tillhör. |
| * NTUserName | 6 | Windows-användarnamnet. |
| ObjectID | 22 | Objektets systemtilldelade ID. |
| ObjectID2 | 56 | ID för det relaterade objektet eller entiteten, om det är tillgängligt. |
| ObjectName | 34 | Namnet på det objekt som refereras till. |
| ** ObjectType | 28 | Värdet som representerar typen av objekt som ingår i händelsen. Det här värdet motsvarar typkolumnen i sysobjects. |
| Uppväga | 61 | Startförskjutningen av instruktionen inom den lagrade proceduren eller batchen. |
| OwnerID | 58 | Endast för låshändelser. Typen av objekt som äger ett lås. |
| ÄgarNamn | 37 | Databasanvändarnamnet för objektägaren. |
| ParentName | 59 | Namnet på schemat där objektet finns. |
| behörigheter | 19 | Heltalsvärdet som representerar den typ av behörigheter som markerats. Värden är: 1 = VÄLJ ALLA 2 = UPPDATERA ALLA 4 = REFERENSER ALLA 8 = INSERT 16 = TA BORT 32 = KÖR (endast procedurer) 4096 = VÄLJ ALLA (minst en kolumn) 8192 = UPPDATERA ALLA 16384 = REFERENSER VILKEN SOM HELST |
| ProviderName | 46 | Namnet på OLEDB-providern. |
| * Läser | 16 | Antalet läsåtgärder på den logiska disk som utförs av servern för händelsens räkning. Dessa läsåtgärder omfattar alla läsningar från tabeller och buffertar under utförandet av instruktionen. |
| RequestID | 49 | ID på förfrågan som innehåller uttalandet. |
| RoleName | 38 | Namnet på den programroll som aktiveras. |
| RowCounts | 48 | Antalet rader i batchen. |
| ServerName | 26 | Namnet på den SQL Server-instans som spåras. |
| SessionLoginName | 64 | Inloggningsnamnet på användaren som startade sessionen. Om du till exempel ansluter till SQL Server med Login1 och kör en instruktion som Login2, visar SessionLoginNameLogin1, medan LoginName visar Login2. Den här datakolumnen visar både SQL Server- och Windows-inloggningar. |
| Severity | 20 | Allvarlighetsgraden för undantagshändelsen. |
| SourceDatabaseID | 62 | ID:t för databasen där objektets källa finns. |
| * SPID | 12 | Sessions-ID (SPID) som tilldelas av SQL Server till den process som är associerad med klienten. |
| SqlHandle | 63 | 64-bitars hash baserad på texten i en ad hoc-fråga eller databas- och objekt-ID för ett SQL-objekt. Det här värdet kan skickas till sys.dm_exec_sql_text() för att hämta den associerade SQL-texten. |
| * Starttime | 14 | Den tidpunkt då evenemanget startade, när det var tillgängligt. |
| State | 30 | Feltillståndskod. |
| Framgång | 23 | Representerar om händelsen lyckades. Värden inkluderar: 1 = Lyckades. 0 = Fel Till exempel innebär en 1 en lyckad behörighetskontroll, och en 0 innebär en misslyckad kontroll. |
| TargetLoginName | 42 | För åtgärder som riktar sig mot en inloggning, namnet på den riktade inloggningen; om du till exempel vill lägga till en ny inloggning. |
| TargetLoginSid | 43 | För åtgärder som riktar sig mot en inloggning, SID för den riktade inloggningen; om du till exempel vill lägga till en ny inloggning. |
| TargetUserName | 39 | För åtgärder som riktar sig mot en databasanvändare, namnet på den användaren; till exempel för att bevilja behörighet till en användare. |
| * TextData | 1 | Textvärdet är beroende av händelseklassen som samlas in i spårningen. Men om du spårar en parametriserad fråga visas inte variablerna med datavärden i kolumnen TextData . |
| Transaktions-ID | 4 | Det systemtilldelade ID:t för transaktionen. |
| Type | 57 | Heltalsvärdet som är beroende av händelseklassen som samlas in i spårningsinformationen. |
| * Skriver | 17 | Antalet fysiska diskskrivningsåtgärder som utförs av servern för händelsens räkning. |
| XactSequence | 50 | En token som beskriver den aktuella transaktionen. |
* Dessa datakolumner fylls som standard för alla händelser.
** Mer information om datakolumnen ObjectType finns i ObjectType Trace Event Column.
SQL-spårningsuppgifter
| Aktivitetsbeskrivning | Ämne |
|---|---|
| Beskriver hur du skapar och kör spårningar med hjälp av Transact-SQL lagrade procedurer. | Skapa och köra spårningar med hjälp av Transact-SQL lagrade procedurer |
| Beskriver hur du skapar manuella spårningar med lagrade procedurer på en instans av SQL Server Database Engine. | Skapa manuella spårningar med lagrade procedurer |
| Beskriver hur du sparar spårningsresultat i filen där spårningsresultatet skrivs. | Spara spårningsresultat i en fil |
| Beskriver hur du förbättrar åtkomsten till spårningsdata med hjälp av utrymme i temp-katalogen . | Förbättra åtkomsten till spårningsdata |
| Beskriver hur du använder lagrade procedurer för att skapa en spårning. | Skapa en spårning (Transact-SQL) |
| Beskriver hur du använder lagrade procedurer för att skapa ett filter som endast hämtar den information du behöver om en händelse som spåras. | Ange ett spårningsfilter (Transact-SQL) |
| Beskriver hur du använder lagrade procedurer för att ändra en befintlig spårning. | Ändra en befintlig spårning (Transact-SQL) |
| Beskriver hur du använder inbyggda funktioner för att visa en sparad spårning. | Visa en sparad spårning (Transact-SQL) |
| Beskriver hur du använder inbyggda funktioner för att visa information om spårningsfilter. | Visa Filter Information (Transact-SQL) |
| Beskriver hur du använder lagrade procedurer för att ta bort en spårning. | Ta bort en spårning (Transact-SQL) |
| Beskriver hur du minimerar prestandakostnaden för en spårning. | Optimera SQL-spårning |
| Beskriver hur du filtrerar en spårning för att minimera de kostnader som uppstår under en spårning. | Filtrera en spårning |
| Beskriver hur du minimerar mängden data som spårningen samlar in. | Begränsa spårningsfil- och tabellstorlekar |
| Beskriver de två sätten att schemalägga spårning i Microsoft SQL Server. | Schemalägga spårningar |
Se även
SQL Server Profiler-mallar och behörigheter
programmeringsguide för SQL Server Management Objects (SMO)