sys.fn_xe_file_target_read_file (Transact-SQL)
S’applique à : SQL ServerAzure 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. À compter de SQL Server 2016 (13.x), ce paramètre peut être donné, NULL
car 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 le code cible du fichier d’événements pour les événements étendus dans Azure SQL Database et Azure SQL Managed Instance.
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
Nécessite l'autorisation VIEW SERVER STATE
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 timestamp_utc > DATEADD(DAY, -1, GETUTCDATE());
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