Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
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