Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
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 SESSIONetALTER EVENT SESSIONsont 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 montre les différents états d’une session d’É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.
| Libellé de l’illustration | instruction DDL | Description |
|---|---|---|
Create |
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. |
Drop |
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 associés aux événements pour chaque session. Si vous avez l’événement 1 dans la session A avec l’action 1 et le prédicat Z, cela n’affecte en aucune façon le fait d’avoir 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 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 politiques de mise en mémoire tampon spécifient la quantité de mémoire à utiliser pour les données d’événements, ainsi que la politique de perte des é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 amène une autre tâche à effectuer du travail, l’ID d’activité de la tâche parente est transmis à 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.
Sessions d’événements limitées dans le temps
Dans Azure SQL Database, Azure SQL Managed Instance et à partir de SQL Server 2025 (17.x), vous pouvez créer une session d’événements qui s’arrête automatiquement après le délai spécifié. Cela permet d’éviter les situations où les sessions peuvent être laissées en cours d’exécution indéfiniment par erreur, en consommant des ressources et en générant potentiellement une grande quantité de données.
Lorsque les données d’événement produites par une session sont volumineuses, les sessions d’événements limitées au temps vous aident à capturer des données de diagnostic plus petites et ciblées pour des durées spécifiques. Vous pouvez démarrer une session d’événements limitée manuellement ou à l’aide d’un travail planifié au moment de votre choix et avec une garantie que la session ne reste pas en cours d’exécution indéfiniment.
Pour limiter une session d’événement dans le temps, spécifiez l’argument MAX_DURATION lors de la création ou de la modification de la session. Pour plus d’informations, consultez CREATE EVENT SESSION et ALTER EVENT SESSION.
Tout comme n’importe quelle session d’événements, vous pouvez arrêter une session limitée dans le temps avant que sa durée maximale s’écoule à l’aide de l’instruction ALTER EVENT SESSION ... STATE = STOP . Si la session est redémarrée, toute la durée spécifiée par MAX_DURATION doit de nouveau s’écouler avant que la session ne soit arrêtée automatiquement.
Vous pouvez également modifier une session d’événements existante à l’aide ALTER EVENT SESSION d’une durée maximale différente ou la supprimer en spécifiant MAX_DURATION = UNLIMITED. Pour modifier le MAX_DURATION paramètre, la session doit être arrêtée.
Si une session d’événements est limitée dans le temps, la max_duration colonne dans sys.server_event_sessions et sys.database_event_sessions affichages catalogue affiche la durée maximale de la session en secondes. La session d’événements a une durée illimitée si la valeur est égale à zéro.