sys.fn_xe_file_target_read_file (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Lit les fichiers créés par la cible de fichier asynchrone Événements étendus. Au format XML, un événement par ligne est retourné.

La cible Événements event_file étendus stocke les données qu’elle reçoit dans un format binaire qui n’est pas lisible par l’homme. Lisez le contenu du .xel fichier avec la sys.fn_xe_file_target_read_file fonction. Ces fichiers peuvent également être lus à partir de 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 d’accès peut contenir des caractères génériques et inclure le nom d’un fichier. path is nvarchar(260) with no default. Dans le contexte d’Azure SQL Database, cette valeur est une URL HTTP vers un fichier dans Stockage Azure.

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 a été 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.

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.

initial_offset

Utilisé pour spécifier le dernier décalage lu et ignorer tous les événements jusqu'au décalage (inclus). 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.

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, et Azure SQL Database.

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, stockez .xel des fichiers dans Stockage Blob Azure. Vous pouvez utiliser sys.fn_xe_file_target_read_file pour lire à partir de sessions d’événements étendues que vous créez vous-même et stockez dans Stockage Blob Azure. Par exemple, passez en revue Créer une session d’événements avec une cible event_file dans Stockage Azure.

Si vous spécifiez un caractère générique et/ou un chemin d’accès pour un 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 cibles de fichier

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 .xem les .xel 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());