Démarrage rapide : Événements étendus
S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Les événements étendus sont une fonctionnalité de supervision des performances légère qui permet aux utilisateurs de collecter des données pour surveiller et résoudre les problèmes. En utilisant des événements étendus, vous pouvez voir les détails des opérations internes du moteur de base de données pertinentes à des fins d’analyse des performances et de résolution des problèmes. Pour en savoir plus sur les événements étendus, consultez la vue d’ensemble des événements étendus.
Cet article vise à aider les administrateurs, les ingénieurs et les développeurs SQL qui débutent avec les événements étendus, et qui souhaitent commencer à l’utiliser et voir les données d’événements en quelques minutes.
Les événements étendus sont également appelés XEvents, et parfois simplement XE.
Après avoir lu cet article, vous pouvez :
- Découvrez comment créer une session d’événements dans SQL Server Management Studio (SSMS), avec des exemples de captures d’écran
- Mettre en corrélation des captures d’écran à des instructions Transact-SQL équivalentes
- Comprendre en détail les termes et concepts de l’interface utilisateur SSMS et des instructions T-SQL XEvents
- Découvrez comment tester votre session d’événements
- Comprendre les résultats de session, notamment :
- Options disponibles pour le stockage des résultats
- Résultats traités et bruts
- Outils permettant d’afficher les résultats de différentes manières et sur différentes échelles de temps
- Découvrez comment rechercher et découvrir tous les événements disponibles
- Comprendre les relations entre les vues système d’événements étendus
Conseil
Pour plus d’informations sur les événements étendus dans Azure SQL Database, notamment des exemples de code, consultez Événements étendus dans SQL Database.
Conditions préalables initiales
Pour commencer, vous devez :
- Téléchargez SQL Server Management Studio (SSMS). Nous vous recommandons d’utiliser une version récente de SSMS avec les dernières améliorations et correctifs.
- Vérifiez que votre compte dispose de l’autorisation du
ALTER ANY EVENT SESSION
serveur.
Des détails sur la sécurité et les autorisations relatives aux événements étendus sont disponibles à la fin de cet article dans l’annexe.
Événements étendus dans SSMS
SSMS fournit une interface utilisateur entièrement fonctionnelle pour les événements étendus. De nombreux scénarios peuvent être réalisés à l’aide de cette interface utilisateur, sans avoir à utiliser des vues de gestion dynamique (DMV) T-SQL ou dynamiques.
Dans cette section, vous pouvez voir les étapes de l’interface utilisateur pour créer une session Événements étendus et afficher les données qu’il signale. Après avoir parcouru les étapes pratiques ou les examiner dans cet article, vous pouvez lire les concepts impliqués dans les étapes pour une compréhension plus approfondie.
Créer une session d’événements dans SSMS
Lorsque vous créez une session Événements étendus, vous indiquez au système :
- Quels événements vous intéressez
- Comment vous souhaitez que le système signale les données à vous
La démonstration ouvre la boîte de dialogue Nouvelle session , montre comment utiliser ses quatre pages, nommées :
- Général
- Événements
- Stockage des données
- Avancé
Le texte et les captures d’écran de prise en charge peuvent être légèrement différents dans votre version de SSMS, mais doivent toujours être pertinents pour l’explication des concepts de base.
Connecter à une instance du moteur de base de données. Les événements étendus sont pris en charge à partir de SQL Server 2014, dans Azure SQL Database et Azure SQL Managed Instance.
Dans l’Explorateur d’objets, sélectionnez Événements étendus de gestion>. Dans Azure SQL Database, les sessions d’événements sont limitées à la base de données. L’option Événements étendus se trouve donc sous chaque base de données, et non sous Gestion. Cliquez avec le bouton droit sur le dossier Sessions , puis sélectionnez Nouvelle session. La boîte de dialogue Nouvelle session est préférable à l’Assistant Nouvelle session, bien que les deux soient similaires.
En haut à gauche, sélectionnez la page Général .
YourSession
Tapez ensuite, ou n’importe quel nom que vous aimez, dans la zone de texte Nom de session. Ne sélectionnez pas encore OK , car vous devez toujours entrer des détails sur d’autres pages.En haut à gauche, sélectionnez la page Événements .
Dans la zone bibliothèque d’événements, dans la liste déroulante, choisissez uniquement les noms d’événements.
- Tapez
sql_statement_
dans la zone de texte. Cette option filtre la liste pour afficher uniquement les événements portantsql_statement_
le nom. - Faites défiler et sélectionnez l’événement nommé
sql_statement_completed
. - Sélectionnez le bouton flèche
>
droite pour déplacer l’événement vers la zone Événements sélectionnés .
- Tapez
Dans la page Événements , sélectionnez le bouton Configurer en haut à droite. La zone Options de configuration des événements s’ouvre pour les événements sélectionnés.
Sélectionnez l’onglet Filtre (prédicat). Ensuite, sélectionnez Sélectionner ici pour ajouter une clause. Nous configurons ce filtre (également appelé prédicat) pour capturer toutes les
SELECT
instructions qui ont uneHAVING
clause.Dans la liste déroulante Champ , choisissez
sqlserver.sql_text
.- Pour l’opérateur, choisissez
like_i_sql_unicode_string
. Ici,i
dans le nom de l’opérateur signifie case-i nsensible. - Pour Valeur, tapez
%SELECT%HAVING%
. Ici, les signes de pourcentage sont sauvages carte debout pour n’importe quelle chaîne de caractères.
Remarque
Dans le nom en deux parties du champ, sqlserver est le nom du package et sql_text est le nom du champ. L’événement que nous avons choisi précédemment, sql_statement_completed, doit être dans le même package que le champ que nous choisissons.
- Pour l’opérateur, choisissez
En haut à gauche, sélectionnez la page Data Stockage.
Dans la zone Cibles , sélectionnez Sélectionner ici pour ajouter une cible.
- Dans la liste déroulante Type , choisissez
event_file
. Cela signifie que les données d’événement sont stockées dans un fichier que nous pouvons ouvrir et afficher ultérieurement. Dans Azure SQL Database et Azure SQL Managed Instance, les données d’événement sont stockées dans des objets blob Stockage Azure.
Remarque
À compter de SQL Server 2019, vous pouvez utiliser Stockage Blob Azure dans une
event_file
cible dans SQL Server.- Dans la liste déroulante Type , choisissez
Dans la zone Propriétés , tapez le chemin d’accès complet et le nom de fichier dans la zone de texte Nom de fichier sur la zone de texte du serveur . Vous pouvez également utiliser le bouton Parcourir . L’extension de nom de fichier doit être
xel
. Dans notre exemple, nous avons utiliséC:\Temp\YourSession_Target.xel
En haut à gauche, sélectionnez la page Avancé . Réduisez la latence de répartition maximale à 3 secondes.
Sélectionnez le bouton OK en bas pour créer cette session d’événements.
De retour dans l’Explorateur d’objets, ouvrez ou actualisez le dossier Sessions et consultez le nouveau nœud pour
YourSession
. La session n’est pas encore démarrée. Vous la démarrez plus tard.
Modifier une session d’événements dans SSMS
Dans l’Explorateur d’objets SSMS, vous pouvez modifier votre session d’événements en cliquant avec le bouton droit sur son nœud, puis en sélectionnant Propriétés. La même boîte de dialogue constituée de plusieurs pages s’affiche.
Créer une session d’événements à l’aide de T-SQL
Dans l’interface utilisateur des événements étendus SSMS, vous pouvez générer un script T-SQL pour créer votre session d’événements comme suit :
- Cliquez avec le bouton droit sur le nœud de session d’événements, puis sélectionnez Session de script comme > CREATE dans > le Presse-papiers.
- Collez-le dans un éditeur de texte.
Voici l’instruction T-SQL générée CREATE EVENT SESSION
pour YourSession
:
CREATE EVENT SESSION [YourSession]
ON SERVER -- For SQL Server and Azure SQL Managed Instance
-- ON DATABASE -- For Azure SQL Database
ADD EVENT sqlserver.sql_statement_completed
(
ACTION(sqlserver.sql_text)
WHERE
( [sqlserver].[like_i_sql_unicode_string]([sqlserver].[sql_text], N'%SELECT%HAVING%')
)
)
ADD TARGET package0.event_file
(SET
filename = N'C:\Temp\YourSession_Target.xel',
max_file_size = (2),
max_rollover_files = (2)
)
WITH (
MAX_MEMORY = 2048 KB,
EVENT_RETENTION_MODE = ALLOW_MULTIPLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 3 SECONDS,
MAX_EVENT_SIZE = 0 KB,
MEMORY_PARTITION_MODE = NONE,
TRACK_CAUSALITY = OFF,
STARTUP_STATE = OFF
);
GO
DROP conditionnel de la session d’événements
Avant l’instruction CREATE EVENT SESSION
, vous pouvez exécuter une DROP EVENT SESSION
instruction de manière conditionnelle si une session portant le même nom existe déjà. Cela supprime la session existante. Sans cela, la tentative de création d’une session portant le même nom provoque une erreur.
IF EXISTS (SELECT *
FROM sys.server_event_sessions
WHERE name = 'YourSession')
BEGIN
DROP EVENT SESSION YourSession
ON SERVER;
END
GO
Démarrer et arrêter la session d’événements à l’aide de T-SQL
Quand vous créez une session d’événements, par défaut, elle ne démarre pas automatiquement. Vous pouvez démarrer ou arrêter votre session d’événements à tout moment à l’aide de l’instruction T-SQL suivante ALTER EVENT SESSION
.
ALTER EVENT SESSION [YourSession]
ON SERVER
STATE = START; -- STOP;
Vous avez la possibilité de configurer la session d’événements pour démarrer automatiquement lorsque l’instance du moteur de base de données est démarrée. Voir le STARTUP STATE = ON
mot clé dans CREATE EVENT SESSION
.
L’interface utilisateur de SSMS offre une boîte de réception case activée correspondante, démarrer la session d’événements au démarrage du serveur, dans la page Général de la nouvelle session>.
Tester une session d’événements
Testez votre session d’événements en procédant comme suit :
- Dans l’Explorateur d’objets, cliquez avec le bouton droit sur votre nœud de session d’événements, puis sélectionnez Démarrer la session.
- Lors de la connexion au même serveur (ou à la même base de données dans Azure SQL Database) où vous avez créé la session d’événements, exécutez l’instruction suivante
SELECT...HAVING
quelques fois. Envisagez de modifier la valeur de laHAVING
clause pour chaque exécution, basculez entre 2 et 3. Cela vous permet de voir les différences dans les résultats. - Cliquez avec le bouton droit sur votre nœud de session, puis sélectionnez Arrêter la session.
- Lisez la sous-section suivante sur la manière de sélectionner et afficher les résultats.
SELECT
c.name,
Count(*) AS [Count-Per-Column-Repeated-Name]
FROM
sys.syscolumns AS c
JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE
o.type = 'V'
AND
c.name like '%event%'
GROUP BY
c.name
HAVING
Count(*) >= 3 --2 -- Try both values during session.
ORDER BY
c.name;
Pour l’exhaustivité, voici l’exemple de sortie de l’exemple précédent SELECT...HAVING
.
/* Approximate output, 6 rows, all HAVING Count >= 3:
name Count-Per-Column-Repeated-Name
--------------------- ------------------------------
event_group_type 4
event_group_type_desc 4
event_session_address 5
event_session_id 5
is_trigger_event 4
trace_event_id 3
*/
Afficher les données de session d’événements en tant que XML
Dans une fenêtre de requête dans SSMS, exécutez l’instruction suivante SELECT
pour afficher les données d’événement capturées par votre session. Chaque ligne représente une occurrence d’événement. Le CAST(... AS xml)
type de données de la colonne passe de nvarchar au format xml. Cela vous permet de sélectionner la valeur de colonne pour l’ouvrir dans une nouvelle fenêtre pour faciliter la lecture.
Remarque
La event_file
cible insère toujours une partie numérique dans le nom de xel
fichier. Avant de pouvoir exécuter la requête suivante, vous devez copier le nom complet réel du xel
fichier qui inclut cette partie numérique et le coller dans l’instruction SELECT
. Dans l’exemple ci-dessous, la partie numérique est _0_131085363367310000
.
SELECT
object_name,
file_name,
file_offset,
event_data,
'CLICK_NEXT_CELL_TO_BROWSE_XML RESULTS!'
AS [CLICK_NEXT_CELL_TO_BROWSE_XML_RESULTS],
CAST(event_data AS xml) AS [event_data_XML]
-- TODO: In the SSMS results grid, click this XML cell
FROM
sys.fn_xe_file_target_read_file(
'C:\Temp\YourSession_Target_0_131085363367310000.xel',
null, null, null
);
Cette requête fournit deux façons d’afficher les résultats complets d’une ligne d’événement donnée :
Exécutez SELECT dans SSMS, puis sélectionnez une cellule dans la
event_data_XML
colonne.Copiez la chaîne XML à partir d’une cellule de la
event_data
colonne. Collez dans n’importe quel éditeur de texte comme Bloc-notes Windows, puis enregistrez le fichier avec l’extensionxml
. Ouvrez ensuite le fichier dans un navigateur ou un éditeur capable d’afficher des données XML.
Données d’événement dans XML
Ensuite, nous observons qu’une partie des résultats est au format XML. Le code XML ici est modifié pour la concision. <data name="row_count">
affiche une valeur de , qui correspond à nos six lignes de 6
résultat affichées précédemment. Et nous pouvons voir l’ensemble de l’affirmation SELECT
.
<event name="sql_statement_completed" package="sqlserver" timestamp="2016-05-24T04:06:08.997Z">
<data name="duration">
<value>111021</value>
</data>
<data name="cpu_time">
<value>109000</value>
</data>
<data name="physical_reads">
<value>0</value>
</data>
<data name="last_row_count">
<value>6</value>
</data>
<data name="offset">
<value>0</value>
</data>
<data name="offset_end">
<value>584</value>
</data>
<data name="statement">
<value>SELECT
c.name,
Count(*) AS [Count-Per-Column-Repeated-Name]
FROM
sys.syscolumns AS c
JOIN sys.sysobjects AS o
ON o.id = c.id
WHERE
o.type = 'V'
AND
c.name like '%event%'
GROUP BY
c.name
HAVING
Count(*) >= 3 --2 -- Try both values during session.
ORDER BY
c.name</value>
</data>
</event>
Afficher les données de session d’événements dans SSMS
Il existe plusieurs fonctionnalités avancées dans l’interface utilisateur de SSMS que vous pouvez utiliser pour afficher les données capturées par une session d’événements. Pour plus d’informations, consultez Afficher les données d’événement dans SQL Server Management Studio.
Vous commencez par les options de menu contextuel intitulées Afficher les données cibles et regarder les données actives.
Afficher les données cibles
Dans l’Explorateur d’objets SSMS, vous pouvez cliquer avec le bouton droit sur le nœud cible qui se trouve sous votre nœud de session d’événements. Dans le menu contextuel, sélectionnez Afficher les données cibles. SSMS affiche les données.
L’affichage n’est pas mis à jour à mesure que de nouveaux événements se produisent dans une session. Mais vous pouvez à nouveau sélectionner Afficher les données cibles.
Regarder les données en direct
Dans l’ Explorateur d’objetsde SSMS, vous pouvez cliquer avec le bouton droit sur le nœud de votre session d’événements. Dans le menu contextuel, sélectionnez Watch Live Data. SSMS affiche les données entrantes au fur et à mesure qu’elles arrivent en temps réel.
Termes et concepts dans les événements étendus
Le tableau suivant répertorie les termes utilisés pour les événements étendus et décrit leurs significations.
Terme | Description |
---|---|
event session |
Construction centrée autour d’un ou plusieurs événements, associées à des éléments comme des actions et des cibles. L’instruction CREATE EVENT SESSION crée chaque session d’événements. Vous pouvez ALTER démarrer une session d’événements et l’arrêter à l’écran.Une session d’événements est parfois simplement appelée session. Quand le contexte le précise, il s’agit d’une session d’événements. Des détails supplémentaires sur les sessions d’événements sont décrits dans : sessions d’événements étendus. |
event |
Occurrence spécifique dans le système qui est surveillée par une session d’événements active. Par exemple, l’événement sql_statement_completed représente le moment où une instruction T-SQL donnée se termine. L’événement peut signaler sa durée et d’autres données. |
target |
Élément qui reçoit les données de sortie d’un événement capturé. La cible vous affiche les données. Les exemples incluent la event_file cible utilisée précédemment dans ce démarrage rapide et la ring_buffer cible qui conserve les événements les plus récents en mémoire.Tout type de cible peut être utilisé pour n’importe quelle session d’événements. Pour plus d’informations, consultez Cibles pour les événements étendus. |
action |
Champ connu de l’événement. Les données issues du champ sont envoyées à la cible. Le champ d’action est étroitement lié au filtre de prédicat. |
predicate ou filtre |
Test de données d’un champ d’événement, utilisé pour que seul un sous-ensemble intéressant d’occurrences d’événements soit envoyé à la cible. Par exemple, un filtre peut inclure uniquement les sql_statement_completed occurrences d’événements où l’instruction T-SQL contenait la chaîne HAVING . |
package |
Qualificateur de nom associé à chaque élément dans un ensemble d’éléments qui tournent autour d’un cœur d’événements. Par exemple, un package peut avoir des événements sur le texte T-SQL. Un événement peut être à propos de tous les T-SQL dans un lot. Dans le même temps, un autre événement plus précis concerne des instructions T-SQL individuelles. De plus, pour n’importe quelle instruction T-SQL, il existe started et completed des événements.Les champs appropriés aux événements sont également inclus dans le package avec les événements. La plupart des cibles sont package0 dans et sont utilisées avec des événements de nombreux autres packages. |
Scénarios d’événements étendus et détails d’utilisation
Il existe de nombreux scénarios d’utilisation d’événements étendus pour surveiller et résoudre les problèmes du moteur de base de données et des charges de travail de requête. Les articles suivants fournissent des exemples utilisant des scénarios liés au verrouillage :
- Trouver les objets comportant le plus de verrous
- Ce scénario utilise la cible d’histogramme , qui traite les données d’événement brutes avant de les afficher dans un formulaire résumé (compartimenté).
- Déterminer quelles requêtes détiennent des verrous
- Ce scénario utilise la cible pair_matching , où la paire d’événements est
sqlserver.lock_acquire
etsqlserver.lock_release
.
- Ce scénario utilise la cible pair_matching , où la paire d’événements est
Guide pratique pour découvrir les événements disponibles dans les packages
La requête suivante retourne une ligne pour chaque événement disponible dont le nom contient la chaîne sql
de trois caractères. Vous pouvez modifier la LIKE
clause pour rechercher différents noms d’événements. Le jeu de résultats identifie également le package qui contient l’événement.
SELECT -- Find an event you want.
p.name AS [Package-Name],
o.object_type,
o.name AS [Object-Name],
o.description AS [Object-Descr],
p.guid AS [Package-Guid]
FROM sys.dm_xe_packages AS p
INNER JOIN sys.dm_xe_objects AS o
ON p.guid = o.package_guid
WHERE o.object_type = 'event' --'action' --'target'
AND p.name LIKE '%'
AND o.name LIKE '%sql%'
ORDER BY p.name,
o.object_type,
o.name;
L’exemple de résultat suivant montre la ligne retournée, pivotée ici dans le format de column name = value
. Les données proviennent de l’événement sql_statement_completed
utilisé dans les étapes de l’exemple précédent. La description de l’objet (un événement, dans cet exemple) sert de chaîne de documentation.
Package-Name = sqlserver
object_type = event
Object-Name = sql_statement_completed
Object-Descr = Occurs when a Transact-SQL statement has completed.
Package-Guid = 655FD93F-3364-40D5-B2BA-330F7FFB6491
Rechercher des événements à l’aide de l’interface utilisateur de SSMS
Une autre option permettant de trouver des événements par nom consiste à utiliser la boîte de dialogue Nouvelle bibliothèque d’événements d’événements > de > session qui s’affiche dans une capture d’écran précédente. Vous pouvez taper un nom d’événement partiel et rechercher tous les noms d’événements correspondants.
Classes d’événements TRACE SQL
Une description de l’utilisation d’événements étendus avec des classes d’événements et des colonnes TRACE SQL est disponible à : afficher les événements étendus équivalents aux classes d’événements trace SQL.
Suivi d’événements pour Windows (ETW)
Vous trouverez des descriptions de l’utilisation des événements étendus avec le suivi d’événements pour Windows (ETW) ici :
Sessions d’événements système
Dans SQL Server et Azure SQL Managed Instance, plusieurs sessions d’événements système sont créées par défaut et configurées pour démarrer au démarrage du moteur de base de données. Comme la plupart des sessions d’événements, elles consomment une petite quantité de ressources et n’affectent pas matériellement les performances de la charge de travail. Microsoft recommande que ces sessions restent activées et en cours d’exécution. Les sessions d’intégrité, en particulier la session system_health, sont souvent utiles pour la supervision et la résolution des problèmes.
Vous pouvez voir ces sessions d’événements dans l’Explorateur d’objets SSMS sous Sessions d’événements étendus > de gestion>. Par exemple, dans SQL Server, ces sessions d’événements système sont les suivantes :
AlwaysOn_health
system_health
telemetry_events
Fournisseur PowerShell
Vous pouvez gérer les événements étendus à l’aide du fournisseur SQL Server PowerShell. Pour plus d’informations, consultez Utiliser le fournisseur PowerShell pour les événements étendus.
Vues système
Les vues système pour les événements étendus sont les suivantes :
- Affichages catalogue : pour plus d’informations sur les sessions d’événements qui ont été définies par
CREATE EVENT SESSION
. - Vues de gestion dynamique (DMV) : pour plus d’informations sur les sessions d’événements actives (démarrées).
SELECTs et JOIN From System Views for Extended Events in SQL Server fournit des informations sur :
- Comment joindre les vues
- Plusieurs requêtes utiles basées sur ces vues
- Corrélation entre :
- Affichez des colonnes
- Clauses
CREATE EVENT SESSION
- Interface utilisateur de SSMS
Annexe : Requêtes pour rechercher les titulaires d’autorisations d’événement étendus
Les autorisations mentionnées dans cet article sont :
ALTER ANY EVENT SESSION
VIEW SERVER STATE
CONTROL SERVER
L’instruction suivante SELECT...UNION ALL
retourne des lignes qui indiquent qui a les autorisations nécessaires pour créer des sessions d’événements et interroger les vues de catalogue système pour les événements étendus.
-- Ascertain who has the permissions listed in the ON clause.
-- 'CONTROL SERVER' permission includes the permissions
-- 'ALTER ANY EVENT SESSION' and 'VIEW SERVER STATE'.
SELECT 'Owner-is-Principal' AS [Type-That-Owns-Permission],
NULL AS [Role-Name],
prin.name AS [Owner-Name],
PERM.permission_name COLLATE Latin1_General_CI_AS_KS_WS AS [Permission-Name]
FROM sys.server_permissions AS PERM
INNER JOIN sys.server_principals AS prin
ON prin.principal_id = PERM.grantee_principal_id
WHERE PERM.permission_name IN (
'ALTER ANY EVENT SESSION',
'VIEW SERVER STATE',
'CONTROL SERVER'
)
UNION ALL
-- Plus check for members of the 'sysadmin' fixed server role,
-- because 'sysadmin' includes the 'CONTROL SERVER' permission.
SELECT 'Owner-is-Role',
prin.name, -- [Role-Name]
CAST((IsNull(pri2.name, N'No members')) AS NVARCHAR(128)),
NULL
FROM sys.server_role_members AS rolm
RIGHT JOIN sys.server_principals AS prin
ON prin.principal_id = rolm.role_principal_id
LEFT JOIN sys.server_principals AS pri2
ON rolm.member_principal_id = pri2.principal_id
WHERE prin.name = 'sysadmin';
HAS_PERMS_BY_NAME, fonction
L’instruction suivante SELECT
signale vos autorisations. Elle s’appuie sur la fonction intégrée HAS_PERMS_BY_NAME.
En outre, si vous avez l’autorité d’emprunter temporairement l’identité d’autres connexions, vous pouvez annuler les marques de commentaire de EXECUTE AS LOGIN et REVERT
les instructions, pour voir si d’autres connexions contiennent l’autorisation ALTER ANY EVENT SESSION
.
--EXECUTE AS LOGIN = 'LoginNameHere';
SELECT HAS_PERMS_BY_NAME(NULL, NULL, 'ALTER ANY EVENT SESSION');
--REVERT;
Contenu associé
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour