Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Er wordt een sessie met uitgebreide gebeurtenissen gemaakt in het SQL Server Database Engine-proces dat als host fungeert voor de engine voor uitgebreide gebeurtenissen. De volgende aspecten van een sessie met uitgebreide gebeurtenissen bieden een context voor inzicht in de infrastructuur voor uitgebreide gebeurtenissen en de verwerking die plaatsvindt:
Sessiestatussen. De verschillende statussen waarin een Extended Events-sessie zich bevindt wanneer
CREATE EVENT SESSION- enALTER EVENT SESSION-instructies worden uitgevoerd.Sessie-inhoud en -kenmerken. De inhoud van een sessie met uitgebreide gebeurtenissen, zoals doelen en gebeurtenissen, en hoe deze objecten zijn gerelateerd in een sessie of tussen sessies.
Sessietoestanden
De volgende illustratie toont de verschillende toestanden van een Extended Events-sessie.
Als u naar de vorige afbeelding verwijst, ziet u dat sessiestatus verandert wanneer de verschillende DDL-opdrachten (Data Definition Language) worden uitgegeven voor een gebeurtenissessie. In de volgende tabel worden deze wijzigingen in de status beschreven.
| Afbeeldingslabel | DDL-opdracht | Description |
|---|---|---|
Create |
CREATE EVENT SESSION |
Het hostproces maakt een sessieobject dat de metagegevens bevat die door CREATE EVENT SESSION worden verstrekt. Het hostproces valideert de sessiedefinitie, valideert het machtigingsniveau van de gebruiker en slaat de metagegevens op in de master database. Op dit moment is de sessie niet actief. |
Alter |
ALTER EVENT SESSION, STATE=START |
Het hostproces start de sessie. Het hostproces leest de opgeslagen metagegevens, valideert de sessiedefinitie, controleert het niveau van de gebruikersmachtiging en maakt de sessie. Sessieobjecten, zoals gebeurtenissen en doelen, worden geladen en gebeurtenisafhandeling is actief. |
Alter |
ALTER EVENT SESSION, STATE=STOP |
Het hostproces stopt de actieve sessie, maar behoudt de metagegevens. |
Drop |
DROP EVENT SESSION |
Afhankelijk van of de sessie actief is, verwijdert Drop (DROP SESSION) de metadata en sluit het de actieve sessie, of verwijdert het de sessiemetadata. |
Sessie-inhoud en -kenmerken
Uitgebreide gebeurtenissensessies hebben impliciete grenzen omdat de configuratie van één sessie de configuratie van een andere sessie niet wijzigt. Deze grenzen verhinderen echter niet dat een gebeurtenis of doeltype in meer dan één sessie wordt gebruikt.
In de volgende afbeelding ziet u sessie-inhoud en de relatie tussen pakketten en sessies.
Met verwijzing naar de bovenstaande afbeelding, houd rekening met het volgende:
- De koppeling tussen pakketobjecten en sessies is een veel-op-veelrelatie, wat betekent dat een object van een bepaald type in meerdere sessies kan voorkomen en dat een sessie meerdere objecten kan bevatten.
- Dezelfde gebeurtenis (gebeurtenis 1) of doeltype (Doel 1) kan in meer dan één sessie worden gebruikt.
Sessies hebben de volgende kenmerken:
- Acties en predicaten zijn afhankelijk van gebeurtenissen per sessie. Als u gebeurtenis 1 in sessie A met actie 1 en predicaat Z hebt, heeft dit geen invloed op gebeurtenis 1 in sessie B met actie 2 en actie 3 zonder predicaat.
- Beleid wordt aan sessies gekoppeld om buffering en distributie te verzorgen, evenals het bijhouden van causaliteit.
Buffering verwijst naar hoe gebeurtenisgegevens worden opgeslagen terwijl een gebeurtenissessie wordt uitgevoerd. Bufferbeleid geeft aan hoeveel geheugen moet worden gebruikt voor gebeurtenisgegevens en het verliesbeleid voor de gebeurtenissen. Verzending verwijst naar de duur van tijdgebeurtenissen die in buffers blijven voordat ze worden geleverd aan doelen voor verwerking.
Causaliteit bijhouden volgt werk over meerdere taken heen. Wanneer causaliteitstracering is ingeschakeld, heeft elke geactiveerde gebeurtenis een unieke activiteits-id in het systeem. De activiteits-id is een combinatie van een GUID-waarde die constant blijft voor alle gebeurtenissen voor een taak en een volgnummer dat wordt verhoogd telkens wanneer een gebeurtenis wordt geactiveerd. Wanneer een taak ervoor zorgt dat er werk wordt uitgevoerd in een andere taak, wordt de activiteits-id van de bovenliggende taak naar de onderliggende taak verzonden. De onderliggende taak voert de activiteits-id van de bovenliggende taak uit wanneer deze de eerste keer een gebeurtenis opent.
Tijdgebonden gebeurtenissessies
In Azure SQL Database, Azure SQL Managed Instance en te beginnen met SQL Server 2025 (17.x), kunt u een gebeurtenissessie maken die automatisch stopt nadat de opgegeven tijd is verstreken. Dit helpt situaties te voorkomen waarin sessies voor onbepaalde tijd kunnen worden uitgevoerd door per ongeluk resources te verbruiken en mogelijk een grote hoeveelheid gegevens te genereren.
Wanneer de gebeurtenisgegevens die door een sessie worden geproduceerd omvangrijk zijn, helpen tijdgebonden gebeurtenissessies u kleinere, gerichte diagnostische gegevens vast te leggen gedurende specifieke perioden. U kunt een tijdgebonden gebeurtenissessie handmatig starten of een geplande taak gebruiken op het moment van uw keuze en met een garantie dat de sessie niet voor onbepaalde tijd wordt uitgevoerd.
Als u een tijdsgebonden gebeurtenissessie wilt maken, geeft u het argument op bij het MAX_DURATION maken of wijzigen van de sessie. Zie voor meer informatie CREATE EVENT SESSION en ALTER EVENT SESSION.
Net als elke gebeurtenissessie kunt u een tijdgebonden sessie stoppen voordat de maximale duur ervan is verstreken met behulp van de ALTER EVENT SESSION ... STATE = STOP instructie. Als de sessie opnieuw wordt gestart, moet de volledige in MAX_DURATION opgegeven tijdsduur opnieuw zijn verstreken voordat de sessie automatisch wordt gestopt.
U kunt ook een bestaande gebeurtenissessie wijzigen met behulp van ALTER EVENT SESSION en daarbij ofwel een andere maximale tijdsduur opgeven, of deze verwijderen door MAX_DURATION = UNLIMITED op te geven. Als u de MAX_DURATION instelling wilt wijzigen, moet de sessie worden gestopt.
Als een gebeurtenissessie tijdsgebonden is, geeft de max_duration kolom in de sys.server_event_sessions en sys.database_event_sessions catalogusweergaven de maximale duur van de sessie in seconden weer. De gebeurtenissessie heeft onbeperkte duur als de waarde nul is.