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());