Anteckning
Å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
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
En extended events-session skapas i SQL Server Database Engine-processen som är värd för extended events-motorn. Följande aspekter av en extended events-session ger en kontext för att förstå infrastrukturen för utökade händelser och bearbetningen som sker:
Sessionstillstånd. De olika tillstånden som en Extended Events-session är i när
CREATE EVENT SESSIONochALTER EVENT SESSION-instruktioner körs.Sessionsinnehåll och egenskaper. Innehållet i en extended events-session, till exempel mål och händelser, och hur dessa objekt är relaterade i en session eller mellan sessioner.
Sessionstillstånd
Följande bild visar de olika tillstånden för en extended events-session.
Se till föregående bild och observera att sessionstillståndet ändras eftersom de olika DDL-kommandona (datadefinitionsspråk) utfärdas för en händelsesession. I följande tabell beskrivs dessa ändringar i tillstånd.
| Bildetikett | DDL-instruktion | Description |
|---|---|---|
Create |
CREATE EVENT SESSION |
Värdprocessen skapar ett sessionsobjekt som innehåller de metadata som tillhandahålls av CREATE EVENT SESSION. Värdprocessen validerar sessionsdefinitionen, validerar användarbehörighetsnivån och lagrar metadata i master databasen. Just nu är sessionen inte aktiv. |
Alter |
ALTER EVENT SESSION, STATE=START |
Värdprocessen startar sessionen. Värdprocessen läser de lagrade metadata, validerar sessionsdefinitionen, verifierar nivån för användarbehörighetsnivå och skapar sessionen. Sessionsobjekt, till exempel händelser och mål, läses in och händelsehanteringen är aktiv. |
Alter |
ALTER EVENT SESSION, STATE=STOP |
Värdprocessen stoppar den aktiva sessionen men behåller metadata. |
Drop |
DROP EVENT SESSION |
Beroende på om sessionen är aktiv eller inte tar Drop (DROP SESSION) bort metadata och stänger den aktiva sessionen eller tar bort sessionsmetadata. |
Sessionsinnehåll och egenskaper
Extended Events-sessioner har underförstådda gränser eftersom konfigurationen av en session inte ändrar konfigurationen av en annan session. Dessa gränser förhindrar dock inte att en händelse eller en måltyp används i mer än en session.
Följande bild visar sessionsinnehåll och relationen mellan paket och sessioner.
Med hänvisning till föregående bild bör du tänka på att:
- Mappningen mellan paketobjekt och sessioner är många till många, vilket innebär att ett objekt av en viss typ kan visas i flera sessioner och en session kan innehålla flera objekt.
- Samma händelse (händelse 1) eller måltyp (mål 1) kan användas i mer än en session.
Sessioner har följande egenskaper:
- Åtgärder och predikat är bundna till händelser per session. Om du har händelse 1 i session A med åtgärd 1 och predikat Z påverkar detta inte på något sätt att ha händelse 1 i session B med åtgärd 2 och åtgärd 3 utan predikat.
- Policyer är kopplade till sessioner för att hantera buffring och vidarebefordran samt spårning av orsakssamband.
Buffring refererar till hur händelsedata lagras när en händelsesession körs. Buffertprinciper anger hur mycket minne som ska användas för händelsedata och förlustprincipen för händelserna. Dispatch refererar till hur länge händelser förblir i buffertar innan de hanteras till mål för bearbetning.
Spårning av kausalitet spårar arbete mellan flera uppgifter. När kausalitetsspårning är aktiverat har varje utlöst händelse ett unikt aktivitets-ID i hela systemet. Aktivitets-ID:t är en kombination av ett GUID-värde som förblir konstant för alla händelser för en aktivitet och ett sekvensnummer som ökas varje gång en händelse utlöses. När en aktivitet gör att arbete utförs på en annan, skickas aktivitets-ID:t för den överordnade aktiviteten till den underordnade aktiviteten. Den underordnade aktiviteten matar ut det överordnade aktivitets-ID:t första gången en händelse utlöses.
Tidsbundna evenemangssessioner
Från och med förhandsversionen av SQL Server 2025 (17.x) kan du skapa en händelsesession som stoppas automatiskt efter den angivna tiden. Detta hjälper till att undvika situationer där sessioner kan lämnas igång på obestämd tid av misstag, förbruka resurser och potentiellt generera en stor mängd data.
När händelsedata som skapas av en session är omfattande hjälper tidsbundna händelsesessioner dig att samla in mindre, riktade diagnostikdata under specifika tidsperioder. Du kan starta en tidsbunden händelsesession manuellt eller använda ett schemalagt jobb vid den tidpunkt du väljer och med en garanti för att sessionen inte lämnas igång på obestämd tid.
Om du vill göra en händelsesession tidsbunden anger du MAX_DURATION argumentet när du skapar eller ändrar sessionen. Mer information finns i SKAPA HÄNDELSESESSION och ÄNDRA HÄNDELSESESSION.
Precis som alla händelsesessioner kan du stoppa en tidsbunden session innan den maximala varaktighetstiden förflutit med hjälp av -instruktionen ALTER EVENT SESSION ... STATE = STOP . Om sessionen startas igen måste hela den tid som anges av MAX_DURATION förflutit igen innan sessionen stoppas automatiskt.
Du kan också använda ALTER EVENT SESSION för att ändra en befintlig händelsesession och antingen ange en annan maximal tid eller ta bort den genom att ange MAX_DURATION = UNLIMITED. Om du vill ändra inställningen MAX_DURATION måste sessionen stoppas.
Om en händelsesession är tidsbunden max_duration visar kolumnen i sys.server_event_sessions katalogvy den maximala varaktigheten för sessionen i sekunder. Händelsesessionen har obegränsad varaktighet om värdet är noll.