Bagikan melalui


sys.fn_xe_file_target_read_file (Transact-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Membaca file yang dibuat oleh target file asinkron Extended Events. Satu peristiwa, dalam format XML, dikembalikan per baris.

Target Extended Events event_file menyimpan data yang diterimanya dalam format biner yang tidak dapat dibaca manusia. Baca konten .xel file dengan sys.fn_xe_file_target_read_file fungsi . File-file ini juga dapat dibaca dari Management Studio. Untuk panduan, lihat Mulai Cepat: Acara yang Diperluas.

Konvensi sintaks transact-SQL

Sintaks

sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )

Argumen

jalan

Jalur ke file yang akan dibaca. jalur dapat berisi kartubebas dan menyertakan nama file. path adalah nvarchar(260) tanpa default. Dalam konteks Azure SQL Database, nilai ini adalah URL HTTP ke file di Azure Storage.

mdpath

Jalur ke file metadata yang sesuai dengan file atau file yang ditentukan oleh argumen jalur . mdpath adalah nvarchar(260) tanpa default.

Di SQL Server 2012 (11.x) dan versi yang lebih baru, Anda tidak memerlukan parameter ini. Ini dipertahankan untuk kompatibilitas mundur, untuk file log yang dihasilkan di versi SQL Server sebelumnya. Di SQL Server 2016 (13.x) dan versi yang lebih baru, parameter ini dapat diberikan sebagai NULL, .xem karena file tidak lagi digunakan.

initial_file_name

File pertama yang dibaca dari jalur. initial_file_name adalah nvarchar(260) tanpa default. Jika NULL ditentukan sebagai argumen, semua file yang ditemukan di jalur akan dibaca.

Catatan

initial_file_name dan initial_offset adalah argumen yang dipasangkan. Jika Anda menentukan nilai untuk salah satu argumen, Anda harus menentukan nilai untuk argumen lain.

initial_offset

Digunakan untuk menentukan pembacaan offset terakhir sebelumnya dan melewati semua peristiwa hingga offset (inklusif). Enumerasi peristiwa dimulai setelah offset ditentukan. initial_offset besar. Jika NULL ditentukan sebagai argumen, seluruh file akan dibaca.

Tabel dikembalikan

Nama kolom Jenis data Deskripsi
module_guid pengidentifikasi unik GUID modul peristiwa. Tidak dapat diubah ke null.
package_guid pengidentifikasi unik GUID paket peristiwa. Tidak dapat diubah ke null.
object_name nvarchar(256) Nama peristiwa. Tidak dapat diubah ke null.
event_data nvarchar(maks) Konten peristiwa, dalam format XML. Tidak dapat diubah ke null.
file_name nvarchar(260) Nama file yang berisi peristiwa. Tidak dapat diubah ke null.
file_offset bigint Offset blok dalam file yang berisi peristiwa. Tidak dapat diubah ke null.
timestamp_utc datetime2(7) Tanggal dan waktu (zona waktu UTC) peristiwa. Tidak dapat diubah ke null.

Berlaku untuk: SQL Server 2017 (14.x) dan versi yang lebih baru, dan Azure SQL Database.

Keterangan

Membaca tataan hasil besar dengan menjalankan sys.fn_xe_file_target_read_file di Management Studio dapat mengakibatkan kesalahan. Gunakan mode Hasil ke File (di SQL Server Management Studio, Ctrl+Shift+F) untuk mengekspor tataan hasil besar ke file yang dapat dibaca manusia, untuk membaca file dengan alat lain sebagai gantinya.

SQL Server 2008 (10.0.x) dan SQL Server 2008 R2 (10.50.x) menerima hasil jejak yang dihasilkan dalam format XEL dan XEM. SQL Server 2012 (11.x) Extended Events hanya mendukung hasil pelacakan dalam format XEL. Kami menyarankan agar Anda menggunakan Management Studio untuk membaca hasil pelacakan dalam format XEL.

Azure SQL

Di Azure SQL Managed Instance atau Azure SQL Database, simpan .xel file di Azure Blob Storage. Anda dapat menggunakan sys.fn_xe_file_target_read_file untuk membaca dari sesi acara yang diperluas yang Anda buat sendiri dan simpan di Azure Blob Storage. Misalnya panduan, tinjau Membuat sesi peristiwa dengan target event_file di Azure Storage.

Jika Anda menentukan kartubebas dan/atau jalur untuk sistem file lokal, Anda menerima pesan kesalahan yang mirip dengan:

Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.

Izin

Di SQL Server 2019 (15.x) dan versi sebelumnya, memerlukan VIEW SERVER STATE izin di server.

Di SQL Server 2022 (16.x) dan versi yang lebih baru, memerlukan VIEW SERVER PERFORMANCE STATE izin di server.

Contoh

J. Mengambil data dari target file

Untuk SQL Server 2014 (12.x) dan versi sebelumnya, contoh berikut mendapatkan semua baris dari semua file, termasuk .xel file dan .xem . Dalam contoh ini, target file dan metafiles terletak di folder pelacakan di C:\traces\ folder .

SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);

Di SQL Server 2016 (13.x) dan versi yang lebih baru, contoh berikut mengambil peristiwa di dalam semua .xel file di folder default. Lokasi default berada \MSSQL\Log dalam folder penginstalan instans.

SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);

Di SQL Server 2017 (14.x) dan versi yang lebih baru, contoh berikut hanya mengambil data dari hari terakhir, dari sesi system_health bawaan. Sesi system_health adalah sesi Extended Events yang disertakan secara default dengan SQL Server. Untuk informasi selengkapnya, lihat Menggunakan sesi 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());