sys.fn_xe_file_target_read_file (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure
Legge i file creati dalla destinazione del file asincrona Eventi estesi. Viene restituito un evento per riga in formato XML.
La destinazione Eventi event_file
estesi archivia i dati ricevuti in un formato binario non leggibile. Leggere il contenuto del .xel
file con la sys.fn_xe_file_target_read_file
funzione . Questi file possono anche essere letti da Management Studio. Per una procedura dettagliata, vedere Guida introduttiva: Eventi estesi.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Argomenti
path
Percorso dei file da leggere. path può contenere caratteri jolly e includere il nome di un file. path è nvarchar(260) senza impostazione predefinita. Nel contesto di database SQL di Azure, questo valore è un URL HTTP di un file in Archiviazione di Azure.
mdpath
Percorso del file di metadati corrispondente al file o ai file specificati dall'argomento path . mdpath è nvarchar(260) senza impostazione predefinita.
In SQL Server 2012 (11.x) e versioni successive non è necessario questo parametro. È stato conservato per la compatibilità con le versioni precedenti, per i file di log generati nelle versioni precedenti di SQL Server. In SQL Server 2016 (13.x) e versioni successive questo parametro può essere assegnato come NULL
, perché .xem
i file non vengono più usati.
initial_file_name
Primo file da leggere dal percorso. initial_file_name è nvarchar(260) senza impostazione predefinita. Se NULL
viene specificato come argomento, vengono letti tutti i file trovati nel percorso .
Nota
initial_file_name e initial_offset sono argomenti associati. Se si specifica un valore per uno degli argomenti, è necessario specificare un valore per l'altro argomento.
initial_offset
Utilizzato per specificare l'ultimo offset letto precedentemente e consente di ignorare tutti gli eventi fino all'offset (incluso). L'enumerazione degli eventi inizia dopo l'offset specificato. initial_offset è bigint. Se NULL
viene specificato come argomento, l'intero file viene letto.
Tabella restituita
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
module_guid |
uniqueidentifier | GUID del modulo dell'evento. Non ammette i valori NULL. |
package_guid |
uniqueidentifier | GUID del pacchetto dell'evento. Non ammette i valori NULL. |
object_name |
nvarchar(256) | Nome dell'evento. Non ammette i valori NULL. |
event_data |
nvarchar(max) | Contenuto dell'evento in formato XML. Non ammette i valori NULL. |
file_name |
nvarchar(260) | Nome del file che contiene l'evento. Non ammette i valori NULL. |
file_offset |
bigint | Offset del blocco nel file che contiene l'evento. Non ammette i valori NULL. |
timestamp_utc |
datetime2(7) | Data e ora (fuso orario UTC) dell'evento. Non ammette i valori NULL. Si applica a: SQL Server 2017 (14.x) e versioni successive, Database SQL di Azure. |
Osservazioni:
La lettura di set di risultati di grandi dimensioni eseguendo sys.fn_xe_file_target_read_file
in Management Studio potrebbe generare un errore. Usare la modalità Risultati in file (in SQL Server Management Studio, CTRL+MAIUSC+F) per esportare set di risultati di grandi dimensioni in un file leggibile dall'utente, per leggere il file con un altro strumento.
SQL Server 2008 (10.0.x) e SQL Server 2008 R2 (10.50.x) accettano i risultati della traccia generati in formato XEL e XEM. Gli eventi estesi di SQL Server 2012 (11.x) supportano solo i risultati della traccia in formato XEL. È consigliabile usare Management Studio per leggere i risultati della traccia in formato XEL.
Azure SQL
In Istanza gestita di SQL di Azure o database SQL di Azure archiviare .xel
i file in Archiviazione BLOB di Azure. È possibile usare sys.fn_xe_file_target_read_file
per eseguire la lettura da sessioni eventi estese create manualmente e archiviarle in Archiviazione BLOB di Azure. Ad esempio, vedere Creare una sessione eventi con una destinazione event_file in Archiviazione di Azure.
Se si specificano caratteri jolly e/o un percorso per un file system locale, viene visualizzato un messaggio di errore simile al seguente:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Autorizzazioni
In SQL Server 2019 (15.x) e versioni precedenti è richiesta VIEW SERVER STATE
l'autorizzazione per il server.
In SQL Server 2022 (16.x) e versioni successive è richiesta VIEW SERVER PERFORMANCE STATE
l'autorizzazione per il server.
Esempi
R. Recuperare dati da destinazioni file
Per SQL Server 2014 (12.x) e le versioni precedenti, l'esempio seguente ottiene tutte le righe da tutti i file, incluso sia il file che .xem
..xel
In questo esempio, le destinazioni e i metafile del file si trovano nella cartella di traccia nella C:\traces\
cartella .
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
In SQL Server 2016 (13.x) e versioni successive, l'esempio seguente recupera gli eventi all'interno di tutti i .xel
file nella cartella predefinita. Il percorso predefinito si trova \MSSQL\Log
all'interno della cartella di installazione dell'istanza.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
In SQL Server 2017 (14.x) e versioni successive, l'esempio seguente recupera solo i dati dall'ultimo giorno, dalla sessione di system_health predefinita. La sessione system_health è una sessione eventi estesi inclusa per impostazione predefinita con SQL Server. Per altre informazioni, vedere Utilizzare la sessione 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());
Contenuto correlato
- Viste a gestione dinamica degli eventi estesi
- Viste del catalogo degli eventi estesi (Transact-SQL)
- Panoramica degli eventi estesi
- Destinazioni degli Eventi estesi
- Vedere dati degli eventi in SQL Server Management Studio
- Convertire uno script di Traccia SQL esistente in una sessione Eventi estesi
- Usare la sessione di system_health