Sessions d’événements étendus
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Une session Extended Events est créée dans le processus du moteur de base de données SQL Server qui héberge le moteur Extended Events. Les aspects suivants d'une session Extended Events fournissent le contexte nécessaire pour comprendre l'infrastructure des Extended Events et le processus qui est en cours :
États de la session. Les différents états dans lesquels peut se trouver une session Extended Events lorsque des instructions
CREATE EVENT SESSION
etALTER EVENT SESSION
sont exécutées.Contenu et caractéristiques de la session. Le contenu d'une session Extended Events, tel que les cibles et les événements, et comment ces objets sont liés dans une session ou parmi des sessions.
États de session
L'illustration ci-dessous indique les divers états d'une session Événements étendus.
En vous référant à l'illustration précédente, observez que l'état de la session change au fur et à mesure que les commandes langage de définition de données (DDL) sont exécutées pour une session d'événements. Ces changements d'état sont décrits dans le tableau ci-dessous.
Nom de l'illustration | Instruction DDL | Description |
---|---|---|
Créer | CREATE EVENT SESSION |
Le processus hôte crée un objet de session contenant les métadonnées fournies par CREATE EVENT SESSION . Le processus hôte valide la définition de session, valide le niveau d'autorisation utilisateur et stocke les métadonnées dans la base de données master . À ce stade, la session n'est pas active. |
Alter | ALTER EVENT SESSION , STATE=START |
Le processus hôte démarre la session. Il lit les métadonnées stockées, valide la définition de session, vérifie le niveau d'autorisation utilisateur et crée la session. Les objets de session, tels que les événements et les cibles, sont chargés et la gestion des événements est active. |
Alter | ALTER EVENT SESSION , STATE=STOP |
Le processus hôte arrête la session active mais conserve les métadonnées. |
Supprimer | DROP EVENT SESSION |
Selon que la session est active ou non, l'instruction Drop (DROP SESSION ) supprime les métadonnées et ferme la session active, ou supprime les métadonnées de la session. |
Contenu et caractéristiques de la session
Les sessions Extended Events sont soumises à des limites implicites dans la mesure où la configuration d'une session ne doit pas modifier la configuration d'une autre session. Toutefois, ces limites n'empêchent pas l'utilisation d'un événement ou d'un type de cible dans plusieurs sessions.
La figure ci-dessous montre le contenu de la session et la relation entre packages et sessions.
Faisant référence à l'illustration précédente, gardez à l’esprit les points suivants :
- Le mappage entre des objets de packages et des sessions est de type plusieurs-à-plusieurs, ce qui signifie qu'un objet d’un type particulier peut apparaître dans plusieurs sessions et qu'une session peut contenir plusieurs objets.
- Un même événement (Événement 1) ou un même type de cible (Cible 1) peuvent être utilisés dans plusieurs sessions.
Les sessions présentent les caractéristiques suivantes :
- Les actions et les prédicats sont liés aux événements session par session. Si l'événement Événement 1 dans la session Session A est lié à l'action Action 1 et au prédicat Prédicat Z, cela n'affecte en aucune façon la possibilité que l'événement Événement 1 dans la session Session B soit lié aux actions Action 2 et Action 3 sans prédicat.
- Les stratégies sont jointes aux sessions pour gérer la mise en mémoire tampon et la distribution, ainsi que le suivi de causalité.
La mise en mémoire tampon fait référence à la manière dont les données d'événement sont stockées au cours de l'exécution d'une session d'événements. Les stratégies de mise en mémoire tampon spécifient la quantité de mémoire à utiliser pour les données d'événement et la stratégie de perte pour les événements. La distribution fait référence à la durée pendant laquelle des événements restent dans les mémoires tampon avant d'être transmis aux cibles pour traitement.
Le suivi de causalité effectue le suivi d'un travail sur plusieurs tâches. Lorsque le suivi de causalité est activé, chaque événement déclenché possède un ID d'activité unique sur le système. L'ID d'activité est constitué d'une valeur GUID qui demeure constante sur tous les événements liés à une tâche et d'un numéro de séquence qui est incrémenté chaque fois qu'un événement est déclenché. Lorsqu'une tâche entraîne l'exécution d'une autre tâche pour un même travail, l'ID d'activité de la tâche parent est envoyé à la tâche enfant. La tâche enfant fournit en sortie l’ID d’activité de la tâche parent la première fois qu’elle déclenche un événement.