Sessions d’événements étendus

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Une session Événements étendus est créée dans le processus sql Server Moteur de base de données hébergeant le moteur d’événements étendus. Les aspects suivants d’une session Événements étendus fournissent un contexte pour comprendre l’infrastructure des événements étendus et le traitement qui se déroule :

  • États de la session. Les différents états indiquant qu’une session Événements étendus se trouve dans le moment CREATE EVENT SESSION où et ALTER EVENT SESSION les instructions sont exécutées.

  • Contenu et caractéristiques de la session. Contenu d’une session d’événements étendus, comme les cibles et les événements, et la façon dont ces objets sont liés dans une session ou entre les sessions.

États de session

L'illustration ci-dessous indique les divers états d'une session Événements étendus.

Diagram showing Extended Events session state.

En faisant référence à la figure précédente, observez que l’état de session change en tant que différentes commandes DDL (Data Definition Language) sont émises 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 qui contient les métadonnées fournies par CREATE EVENT SESSION. Le processus hôte valide la définition de session, valide le niveau d’autorisation de l’utilisateur et stocke les métadonnées dans la master base de données. À 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, Drop (DROP SESSION) supprime les métadonnées et ferme la session active ou supprime les métadonnées de session.

Contenu et caractéristiques de session

Les sessions Événements étendus ont des limites implicites dans lesquelles la configuration d’une session ne modifie pas la configuration d’une autre session. Toutefois, ces limites n’empêchent pas l’utilisation d’un événement ou d’un type cible dans plusieurs sessions.

La figure ci-dessous montre le contenu de la session et la relation entre packages et sessions.

Diagram showing object coexistence and sharing in sessions.

En faisant référence à l’illustration précédente, gardez à l’esprit que :

  • Le mappage entre les objets de package et les sessions est beaucoup à 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.
  • Le même événement (événement 1) ou type cible (cible 1) peut être utilisé 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 vous avez l’événement 1 dans la session A avec l’action 1 et le prédicat Z, cela n’affecte pas l’événement 1 dans la session B avec l’action 2 et l’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 façon dont les données d’événement sont stockées pendant 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. Dispatch fait référence à la durée d’attente des événements dans les mémoires tampons avant d’être servi aux cibles pour le traitement.

Le suivi de la causalité effectue le suivi du travail entre 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.