Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Lit les fichiers XEL du journal des événements créés par la cible Événements étendus event_file . Chaque ligne du jeu de résultats représente un événement. Les données d’événement sont retournées au format XML.
Les fichiers XEL peuvent également être lus par SQL Server Management Studio. Pour obtenir une procédure pas à pas, consultez Démarrage rapide : Événements étendus.
Conventions de la syntaxe Transact-SQL
Syntaxe
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Arguments
path
Chemin d'accès aux fichiers à lire. Le chemin est nvarchar(260) sans défaut.
Lorsqu’il est utilisé avec des fichiers dans le système de fichiers local, le chemin d’accès doit inclure le nom d’un fichier journal de session d’événements. Le nom de fichier peut contenir
*en tant que caractère générique pour lire des données à partir de plusieurs fichiers.Lorsqu’il est utilisé avec des objets blob dans un conteneur stockage Azure, le chemin d’accès est une URL HTTP construite par la concaténation de deux parties :
Chemin d’accès à un conteneur de stockage Stockage Azure, suivi d’une barre oblique (
/).Préfixe commun pour les noms d’objets blob dans le conteneur qui doivent être lus. Pour lire un objet blob unique, utilisez le nom complet de l’objet blob.
Par exemple, l’utilisation
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessioncomme chemin récupère les données de tous les objets blob avec des noms commençant parxe_session, et quel que soit le reste du nom de l’objet blob, y compris l’extension. Les caractères génériques ne peuvent pas être spécifiés.
mdpath
Chemin d’accès au fichier de métadonnées qui correspond au fichier ou aux fichiers spécifiés par l’argument de chemin d’accès . mdpath est nvarchar(260) sans valeur par défaut.
Dans SQL Server 2012 (11.x) et versions ultérieures, vous n’avez pas besoin de ce paramètre. Elle est conservée pour la compatibilité descendante, pour les fichiers journaux générés dans les versions précédentes de SQL Server. Dans SQL Server 2016 (13.x) et versions ultérieures, ce paramètre peut être donné, NULLcar les .xem fichiers ne sont plus utilisés.
initial_file_name
Premier fichier à lire à partir du chemin d’accès.
initial_file_name est nvarchar(260) sans valeur par défaut. Si NULL elle est spécifiée en tant qu’argument, tous les fichiers trouvés dans le chemin d’accès sont lus.
Le nom de fichier doit être une valeur retournée dans le jeu de résultats d’un sys.fn_xe_file_target_read_file appel de fonction avec le même chemin d’accès.
initial_offset
Permet de spécifier la dernière lecture de décalage précédemment. Ignore tous les événements jusqu’au décalage (inclusif). Commence l'énumération d'événements après le décalage spécifié.
initial_offset est bigint. Si NULL elle est spécifiée en tant qu’argument, l’intégralité du fichier est lue.
Remarque
initial_file_name et initial_offset sont des arguments jumelés. Si vous spécifiez une valeur pour l’un ou l’autre argument, vous devez spécifier une valeur pour l’autre argument.
Table retournée
| Nom de la colonne | Type de données | Description |
|---|---|---|
module_guid |
uniqueidentifier | GUID du module d'événements. N'accepte pas la valeur NULL. |
package_guid |
uniqueidentifier | GUID du package d'événement. N'accepte pas la valeur NULL. |
object_name |
nvarchar (256) | Nom de l’événement. N'accepte pas la valeur NULL. |
event_data |
nvarchar(max) | Contenu de l'événement, au format XML. N'accepte pas la valeur NULL. |
file_name |
nvarchar(260) | Nom du fichier qui contient l'événement. N'accepte pas la valeur NULL. |
file_offset |
bigint | Offset du bloc dans le fichier qui contient l'événement. N'accepte pas la valeur NULL. |
timestamp_utc |
datetime2(7) | Date et heure (fuseau horaire UTC) de l’événement. N'accepte pas la valeur NULL. S’applique à : SQL Server 2017 (14.x) et versions ultérieures, Azure SQL Database et Azure SQL Managed Instance. |
Notes
La lecture de jeux de résultats volumineux en s’exécutant sys.fn_xe_file_target_read_file dans Management Studio peut entraîner une erreur. Utilisez les résultats en mode Fichier (dans SQL Server Management Studio, Ctrl+Maj+F) pour exporter des jeux de résultats volumineux vers un fichier lisible par l’utilisateur, pour lire le fichier avec un autre outil à la place.
SQL Server 2008 (10.0.x) et SQL Server 2008 R2 (10.50.x) acceptent les résultats de trace générés au format XEL et XEM. SQL Server 2012 (11.x) Les événements étendus prennent uniquement en charge les résultats de trace au format XEL. Nous vous recommandons d’utiliser Management Studio pour lire les résultats de trace au format XEL.
Azure SQL
Dans Azure SQL Managed Instance ou Azure SQL Database, les fichiers créés par la event_file cible sont toujours stockés en tant qu’objets blob dans un conteneur stockage Azure.
Vous pouvez utiliser sys.fn_xe_file_target_read_file pour lire des données à partir de ces objets blob si des informations d’identification autorisent l’accès au conteneur stockage Azure. Pour obtenir une procédure pas à pas, consultez Créer une session d’événements avec une cible event_file dans Stockage Azure.
Si vous spécifiez un chemin d’accès au système de fichiers local, vous recevez un message d’erreur similaire à :
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
autorisations
Dans SQL Server 2019 (15.x) et les versions précédentes, nécessite VIEW SERVER STATE une autorisation sur le serveur.
Dans SQL Server 2022 (16.x) et versions ultérieures, nécessite VIEW SERVER PERFORMANCE STATE une autorisation sur le serveur.
Exemples
R. Récupérer des données à partir de fichiers dans le système de fichiers local
Pour SQL Server 2014 (12.x) et les versions précédentes, l’exemple suivant obtient toutes les lignes de tous les fichiers, y compris les fichiers et .xel les .xem fichiers. Dans cet exemple, les cibles de fichier et les métafichiers se trouvent dans le dossier de trace du C:\traces\ dossier.
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
Dans SQL Server 2016 (13.x) et versions ultérieures, l’exemple suivant récupère les événements dans tous les .xel fichiers du dossier par défaut. L’emplacement par défaut se trouve \MSSQL\Log dans le dossier d’installation de l’instance.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
Dans SQL Server 2017 (14.x) et versions ultérieures, l’exemple suivant récupère uniquement les données du dernier jour, à partir de la session intégrée system_health. La session system_health est une session Événements étendus incluse par défaut avec SQL Server. Pour plus d’informations, consultez Utiliser la session system_health.
SELECT *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', NULL, NULL, NULL)
WHERE CAST (timestamp_utc AS DATETIME2 (7)) > DATEADD(DAY, -1, GETUTCDATE());
B. Récupérer des données à partir d’objets blob dans un conteneur stockage Azure
Lisez les données de tous les objets blob du conteneur avec des noms commençant par xe_session_.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Lit les données de l’objet xe_session_0_133614763336380000.xel blob.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
NULL,
NULL,
NULL
);
Lit les données de l’objet xe_session_0_133614763336380000.xel blob à partir du décalage 33280.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
33280
);
Contenu connexe
- Vues de gestion dynamique des Événements étendus
- Affichages catalogue des événements étendus (Transact-SQL)
- Aperçu des événements étendus
- Cibles pour les événements étendus
- Afficher les données d’événement dans SQL Server Management Studio
- Convertir un script Trace SQL existant en session d’événements étendus
- Utiliser la session system_health