Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Läser händelseloggens XEL-filer som skapats av målet Utökade händelser event_file . Varje rad i resultatuppsättningen representerar en händelse. Händelsedata returneras i XML-format.
XEL-filer kan också läsas av SQL Server Management Studio. En genomgång finns i Snabbstart: Utökade händelser.
Transact-SQL syntaxkonventioner
Syntax
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Arguments
sökväg
Sökvägen till filerna som ska läsas. path är nvarchar(260) utan standard.
När den används med filer i det lokala filsystemet måste sökvägen innehålla namnet på en händelsesessionsloggfil. Filnamnet kan innehålla
*som ett jokertecken för att läsa data från flera filer.När den används med blobar i en Azure Storage-container är sökvägen en HTTP-URL som skapas av sammanlänkningen av två delar:
Sökvägen till en Azure Storage-lagringscontainer följt av ett snedstreck (
/).Ett vanligt prefix för namnen på blobar i containern som ska läsas. Om du vill läsa en enskild blob använder du blobens fullständiga namn.
Om du till exempel använder
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessionsom sökväg hämtas data från alla blobar med namn som börjar medxe_session, och oavsett resten av blobnamnet inklusive tillägget. Jokertecken kan inte anges.
mdpath
Sökvägen till metadatafilen som motsvarar filen eller filerna som anges av sökvägsargumentet . mdpath är nvarchar(260) utan standard.
I SQL Server 2012 (11.x) och senare versioner behöver du inte den här parametern. Den behålls för bakåtkompatibilitet för loggfiler som genererats i tidigare versioner av SQL Server. I SQL Server 2016 (13.x) och senare versioner kan den här parametern anges som NULL, eftersom .xem filer inte längre används.
initial_file_name
Den första filen som ska läsas från sökvägen.
initial_file_name är nvarchar(260) utan standard. Om NULL anges som argument, läss alla filer som finns i sökvägen .
Filnamnet måste vara ett värde som returneras i resultatuppsättningen för ett sys.fn_xe_file_target_read_file funktionsanrop med samma sökväg.
initial_offset
Används för att ange senaste förskjutning som lästes tidigare. Hoppar över alla händelser upp till förskjutningen (inklusive). Händelseuppräkning startar efter att förskjutningen har angetts.
initial_offset är storint. Om NULL har angetts som argumentet läss hela filen.
Anmärkning
initial_file_name och initial_offset är parkopplade argument. Om du anger ett värde för något av argumenten måste du ange ett värde för det andra argumentet.
Tabellen returnerades
| Kolumnnamn | Datatyp | Description |
|---|---|---|
module_guid |
uniqueidentifier | Händelsemodulens GUID. Inte nullbar. |
package_guid |
uniqueidentifier | Händelsepaketets GUID. Inte nullbar. |
object_name |
nvarchar(256) | Namnet på händelsen. Inte nullbar. |
event_data |
nvarchar(max) | Händelseinnehållet i XML-format. Inte nullbar. |
file_name |
nvarchar(260) | Namnet på filen som innehåller händelsen. Inte nullbar. |
file_offset |
bigint | Förskjutningen av blocket i filen som innehåller händelsen. Inte nullbar. |
timestamp_utc |
datetime2(7) | Datum och tid (UTC-tidszon) för händelsen. Inte nullbar. Gäller för: SQL Server 2017 (14.x) och senare versioner, Azure SQL Database och Azure SQL Managed Instance. |
Anmärkningar
Om du läser stora resultatuppsättningar genom att sys.fn_xe_file_target_read_file köra i Management Studio kan det leda till ett fel. Använd läget Resultat till fil (i SQL Server Management Studio, Ctrl+Skift+F) för att exportera stora resultatuppsättningar till en fil som kan läsas av människor för att läsa filen med ett annat verktyg i stället.
SQL Server 2008 (10.0.x) och SQL Server 2008 R2 (10.50.x) accepterar spårningsresultat som genererats i XEL- och XEM-format. SQL Server 2012 (11.x) Extended Events stöder endast spårningsresultat i XEL-format. Vi rekommenderar att du använder Management Studio för att läsa spårningsresultat i XEL-format.
Azure SQL
I Azure SQL Managed Instance eller Azure SQL Database lagras filerna som skapats av event_file målet alltid som blobar i en Azure Storage-container.
Du kan använda sys.fn_xe_file_target_read_file för att läsa data från dessa blobar om det finns en autentiseringsuppgift som ger åtkomst till Azure Storage-containern. En genomgång finns i Skapa en händelsesession med ett event_file mål i Azure Storage.
Om du anger en sökväg till ett lokalt filsystem får du ett felmeddelande som liknar:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Permissions
I SQL Server 2019 (15.x) och tidigare versioner kräver VIEW SERVER STATE behörighet på servern.
I SQL Server 2022 (16.x) och senare versioner kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.
Examples
A. Hämta data från filer i det lokala filsystemet
För SQL Server 2014 (12.x) och tidigare versioner hämtar följande exempel alla rader från alla filer, inklusive både .xel och .xem -filen. I det här exemplet finns filmål och metafiler i spårningsmappen C:\traces\ i mappen .
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
I SQL Server 2016 (13.x) och senare versioner hämtar följande exempel händelser i alla .xel filer i standardmappen. Standardplatsen finns \MSSQL\Log i installationsmappen för instansen.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
I SQL Server 2017 (14.x) och senare versioner hämtar följande exempel endast data från den senaste dagen, från den inbyggda system_health-sessionen. Den system_health sessionen är en extended events-session som ingår som standard med SQL Server. Mer information finns i Använda system_health-sessionen.
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. Hämta data från blobar i en Azure Storage-container
Läsa data från alla blobar i containern med namn som börjar med 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
);
Läsa data från bloben xe_session_0_133614763336380000.xel .
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
);
Läs data från bloben xe_session_0_133614763336380000.xel från och med förskjutning 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
);
Relaterat innehåll
- Vyer för dynamisk hantering av utökade händelser
- Katalogvyer för utökade händelser (Transact-SQL)
- översikt över Extended Events
- Mål för utökade händelser
- Visa händelsedata i SQL Server Management Studio
- Konvertera ett befintligt SQL-spårningsskript till en utökad händelsesession
- Använda system_health-sessionen