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
L’architecture Des événements étendus (XEvents) permet aux utilisateurs de collecter autant ou moins de données que nécessaire pour surveiller, identifier ou résoudre les problèmes de performances dans SQL Server, Azure SQL Database, Azure SQL Managed Instance et SQL Database dans Fabric. Extended Events est hautement configurable, léger et évolue bien. Pour plus d’informations, consultez Extended Events Architecture.
Extended Events remplace les fonctionnalités obsolètes de SQL Trace et de SQL Server Profiler.
Pour commencer avec Extended Events, utilisez Quickstart : Extended Events.
Remarque
Pour Azure SQL Database, SQL Database dans Fabric et SQL Managed Instance, les exemples de code peuvent différer , car les fichiers de la event_file cible sont stockés dans stockage Azure. Pour plus d’informations, consultez Événements étendus dans Azure SQL.
Avantages des événements étendus
Extended Events est un système de monitoring des performances léger qui utilise des ressources système minimales tout en fournissant une vue détaillée et approfondie du moteur de base de données. SQL Server Management Studio fournit une interface utilisateur graphique pour les événements étendus permettant de créer, modifier et déposer des sessions d’événements et pour afficher et analyser les données de session. Pour en savoir plus sur la prise en charge d’Extended Events dans Management Studio, consultez :
Concepts liés à Extended Events
Les événements étendus reposent sur les concepts existants du suivi d’événements pour Windows (ETW), tels que l'événement et le consommateur d'événements, et introduisent de nouveaux concepts tels que l'action et le prédicat.
Le tableau suivant fournit des références de documentation pour comprendre les concepts d’Extended Events.
| Article | Description |
|---|---|
| Packages Extended Events | Décrit les packages Événements étendus qui contiennent des objets. Ces objets sont utilisés pour obtenir et traiter les données lorsqu’une session d’événements étendus est en cours d’exécution. |
| Cibles d’événements étendus | Décrit les consommateurs d'événements qui peuvent recevoir des données au cours d'une session d'événements. |
| Moteur Extended Events | Décrit le moteur qui implémente et gère une session Événements étendus. |
| Sessions d’événements étendus | Décrit la session d'événements étendus. |
Architecture d’Extended Events
Les événements étendus est un nom pour un système général de gestion d’événements général pour les systèmes serveur. L’infrastructure d’Extended Events prend en charge la corrélation des données du moteur de base de données et, dans certaines conditions, la corrélation des données du système d’exploitation et des applications de base de données. Dans le cas de données provenant du système d’exploitation, la sortie des Événements étendus doit être dirigée vers le Suivi d’événements pour Windows (ETW), afin de mettre en corrélation les données d’événement avec les données d’événement du système d’exploitation ou des applications.
Toutes les applications ont des points d'exécution qui sont utiles aussi bien à l'intérieur qu'à l'extérieur d'une application. Au sein de l'application, le traitement asynchrone peut être mis en attente à l'aide d'informations collectées au cours de l'exécution initiale d'une tâche. En dehors de l’application, les points d’exécution fournissent des utilitaires d’analyse avec des informations sur les caractéristiques comportementales et de performances de l’application analysée.
Les événements étendus prennent en charge l'utilisation de données d'événement à l'extérieur d'un processus. Ces données sont généralement utilisées par les utilisateurs qui gèrent ou prennent en charge un produit en procédant à une supervision des performances, ou par les utilisateurs qui développent des applications sur un produit à des fins de débogage. Les données sont consommées ou analysées à l’aide d’outils tels que SQL Server Management, XEvent Profiler, l’Analyseur de performances, et T-SQL ou les outils en ligne de commande Windows.
Les événements étendus présentent les aspects de conception clés suivants :
- Le moteur d'événements étendus est agnostique en termes d'événements, Cela permet au moteur de lier tout événement à toute cible, car le moteur n’est pas contraint par le contenu des événements. Pour plus d’informations sur le moteur d’Extended Events, consulter Moteur d’Extended Events.
- Les événements sont séparés des consommateurs d'événements, appelés cibles dans les événements étendus. Cela signifie que toute cible peut recevoir tout événement. De plus, tout événement déclenché peut être automatiquement consommé par la cible, qui peut enregistrer dans le journal ou fournir un contexte d'événement supplémentaire. Pour plus d’informations, consultez les cibles d’événements étendus.
- Les événements sont distincts de l'action à entreprendre lorsqu'un événement se produit. Par conséquent, toute action peut être associée à tout événement.
- Les prédicats peuvent filtrer dynamiquement lorsque les données d'événement doivent être capturées. Le filtrage dynamique s’ajoute à la flexibilité de l’infrastructure Événements étendus. Pour plus d’informations, consultez Packages Extended Events.
Extended Events peut générer de façon synchrone des données d'événement (et les traiter de façon asynchrone), ce qui fournit une solution flexible de gestion des événements. De plus, les événements étendus fournissent les fonctionnalités suivantes :
- une approche unifiée de la gestion des événements sur le système serveur, tout en permettant aux utilisateurs d'isoler des événements spécifiques dans le but de résoudre des problèmes ;
- l'intégration avec les outils existants de suivi ETW et la prise en charge de ces derniers ;
- Un mécanisme de gestion des événements entièrement configurable qui utilise Transact-SQL.
- la capacité de surveiller dynamiquement les processus actifs tout en ayant un impact minime sur ces processus.
- une session de l'intégrité du système par défaut qui s'exécute sans effet de performance notable ; Elle recueille des données système qui peuvent vous aider à résoudre des problèmes de performances. Pour plus d’informations, consultez Utiliser la session system_health.
Tâches relatives à Extended Events
En utilisant Management Studio ou Transact-SQL pour exécuter des instructions DDL (Data Definition Language) Transact-SQL, ou pour consommer des vues, des fonctions de gestion dynamiques ou des affichages catalogue, vous pouvez créer des solutions de dépannage des événements étendus SQL Server simples ou complexes pour votre environnement SQL Server.
| Description de la tâche | Article |
|---|---|
| Utilisez l' Explorateur d'objets pour gérer les sessions d'événements. | Gérer les sessions d’événements dans l’Explorateur d’objets |
| Décrit comment utiliser des cibles d’événements étendus disponibles. | Cibles d’événements étendus |
| Explique comment afficher et actualiser des données cibles. | Afficher les données d’événement dans SQL Server Management Studio |
| Décrit l’architecture des sessions d'Événements Étendus. | Sessions d’événements étendus |
| Explique comment utiliser des outils d'événements étendus pour créer et gérer vos sessions d'événements étendus . | Outils associés aux événements étendus |
| Explique comment altérer une session d'événements étendus. | Modifier une session d’événements étendus |
| Explique comment obtenir des informations sur les champs associés aux événements. | Obtenir les champs pour tous les événements |
| Explique comment déterminer quels sont les événements disponibles dans les packages enregistrés. | SELECTs et JOINs à partir des vues système pour les événements étendus |
| Explique comment afficher les événements Événements étendus et les actions qui sont équivalents à chaque événement SQL Trace et à ses colonnes associées. | Consulter les événements étendus équivalents aux classes d’événements Trace SQL |
| Explique comment convertir un script Trace SQL existant en session d'événements étendus. | Convertir un script Trace SQL existant en session d’événements étendus |
| Explique comment déterminer quelles requêtes détiennent le verrou, le plan de la requête et la pile Transact-SQL au moment où le verrou a été mis. | Déterminer quelles requêtes détiennent des verrous |
| Décrit comment identifier la source des verrous. | Trouver les objets comportant le plus de verrous |
| Explique comment utiliser les événements étendus avec le suivi d'événements pour Windows pour surveiller l'activité système. | Superviser l’activité système à l’aide d’événements étendus |
| Utilisation des vues de catalogue et des vues de gestion dynamique (DMV) pour Extended Events | SELECTs et JOINs à partir des vues système pour les événements étendus |
Affichages catalogue des événements étendus
Les événements étendus fournissent plusieurs affichages catalogue. Les affichages catalogue vous indiquent les métadonnées ou la définition de session d’événements. Pour plus d’informations sur les instances de sessions d’événements actives, consultez les vues de gestion dynamique des événements étendus.
| Nom de la vue de catalogue | Description |
|---|---|
| sys.database_event_session_actions | Retourne une ligne pour chaque action sur chaque événement d’une session d’événements délimitée à la base de données. |
| sys.database_event_session_events | Retourne une ligne pour chaque événement dans une session d'événements à l'échelle de la base de données. |
| sys.database_event_session_fields | Retourne une ligne pour chaque colonne personnalisable qui a été explicitement configurée pour les événements et les cibles d'une session à portée de base de données. |
| sys.database_event_session_targets | Retourne une ligne pour chaque cible d’événement pour une session d’événement à l’échelle de la base de données. |
| sys.database_event_sessions | Retourne une ligne pour chaque session d’événements propre à chaque base de données. |
Vues de gestion dynamique des événements étendus
Les événements étendus fournissent plusieurs vues de gestion dynamique (DMV). Les DMV retournent des informations sur les sessions d’événements actives (démarrées), telles que les statistiques de session et de cible.
| Nom de la DMV | Description |
|---|---|
| sys.dm_xe_database_session_event_actions | Retourne des informations sur les actions de session d’événements délimitées à la base de données. |
| sys.dm_xe_database_session_events | Retourne des informations sur les événements de session spécifiques à l’étendue d'une base de données. |
| sys.dm_xe_database_session_object_columns | Affiche les valeurs de configuration des objets liés à une session délimitée à la base de données. |
| sys.dm_xe_database_session_targets | Retourne des informations sur les cibles de session d’événements à l'échelle de la base de données. |
| sys.dm_xe_database_sessions | Retourne une ligne pour chaque session d’événements délimitée à la base de données exécutée dans la base de données active. |
Permissions
Dans Azure SQL Database, SQL Database dans Fabric, Azure SQL Managed Instance, ainsi que dans SQL Server 2022 et les versions ultérieures, les événements étendus prennent en charge un modèle d’autorisation granulaire. Les autorisations suivantes peuvent être accordées :
CREATE ANY DATABASE EVENT SESSION
DROP ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION
ALTER ANY DATABASE EVENT SESSION ADD EVENT
ALTER ANY DATABASE EVENT SESSION DROP EVENT
ALTER ANY DATABASE EVENT SESSION ADD TARGET
ALTER ANY DATABASE EVENT SESSION DROP TARGET
ALTER ANY DATABASE EVENT SESSION ENABLE
ALTER ANY DATABASE EVENT SESSION DISABLE
ALTER ANY DATABASE EVENT SESSION OPTION
Pour plus d’informations sur ce que contrôle chacune de ces autorisations, consultez CREATE EVENT SESSION, ALTER EVENT SESSION et DROP EVENT SESSION.
Toutes ces autorisations sont incluses dans l’autorisation sur la CONTROL base de données, l’instance managée SQL ou l’instance SQL Server. Dans la base de données Azure SQL, le propriétaire de base de données (dbo), les membres du rôle de base de données db_owner et l’administrateur du serveur logique contiennent l’autorisation CONTROL de base de données. Dans Azure SQL Managed Instance et dans SQL Server, les membres du sysadmin rôle serveur conservent l’autorisation CONTROL sur l’instance.
Les exemples de code peuvent différer pour Azure SQL Database, SQL Database dans Fabric et SQL Managed Instance
Certains exemples de code Transact-SQL écrits pour SQL Server ont besoin de petites modifications pour s’exécuter dans Azure SQL Database ou SQL Database dans Fabric. Une catégorie de ces exemples de code implique des affichages catalogue dont les préfixes de nom diffèrent selon le type de moteur de base de données :
-
server_- : préfixe pour SQL Server et Azure SQL Managed Instance -
database_- préfixe pour Azure SQL Database, base de données SQL dans Fabric et SQL Managed Instance
Azure SQL Database et la base de données SQL dans Fabric prennent uniquement en charge les sessions d’événements délimitées à la base de données. SQL Server Management Studio (SSMS) prend en charge les sessions d’événements délimitées à la base de données pour Azure SQL Database : un nœud Événements étendus contenant des sessions délimitées à la base de données apparaît sous chaque base de données de l’Explorateur d’objets.
Azure SQL Managed Instance prend en charge les sessions incluses dans l’étendue de la base de données et les sessions incluses dans l’étendue du serveur. SSMS prend complètement en charge les sessions incluses dans l’étendue du serveur pour SQL Managed Instance : un nœud Événements étendus contenant toutes les sessions incluses dans l’étendue du serveur apparaît sous le dossier Gestion de chaque instance gérée dans Explorateur d'objets.
Remarque
Les sessions d’événements au niveau du serveur sont recommandées pour Azure SQL Managed Instance.
Les sessions d’événements délimitées à la base de données ne sont pas affichées dans l’Explorateur d’objets dans SSMS pour Azure SQL Managed Instance. Sur une instance managée SQL, les sessions d’événements délimitées à la base de données peuvent uniquement être interrogées et gérées avec Transact-SQL.
À titre d’illustration, le tableau suivant liste et compare deux sous-ensembles d’affichages catalogue. Les sous-ensembles ont des préfixes de noms différents car ils prennent en charge des types de moteur de base de données différents.
| Nom dans SQL Server et Azure SQL Managed Instance | Nom dans Azure SQL Database, base de données SQL dans Fabric et Azure SQL Managed Instance |
|---|---|
sys.server_event_session_actionssys.server_event_session_eventssys.server_event_session_fieldssys.server_event_session_targetssys.server_event_sessions |
sys.database_event_session_actionssys.database_event_session_eventssys.database_event_session_fieldssys.database_event_session_targetssys.database_event_sessions |
Contenu connexe
- Vues de gestion dynamique des Événements étendus
- Affichages catalogue des événements étendus (Transact-SQL)
- SQL Mysteries : suivi de causalité vs séquence d’événements pour les sessions XEvent
- Analyser et empêcher les blocages dans Azure SQL Database et La base de données SQL Fabric
- Démarrage rapide : Extended Events
- Créer une session d’événements avec une cible event_file dans Stockage Azure
- Événements étendus dans Azure SQL
- XELite : bibliothèque multiplateforme pour lire XEvent à partir de fichiers XEL ou de flux SQL dynamiques