sys.fn_xe_file_target_read_file (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure 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. Dimulai dengan SQL Server 2016 (13.x), parameter ini dapat diberikan sebagai NULL, karena .xem 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 kode target File Peristiwa untuk peristiwa yang diperluas di Azure SQL Database dan Azure SQL Managed Instance.

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

VIEW SERVER STATE Memerlukan izin pada 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 timestamp_utc > DATEADD(DAY, -1, GETUTCDATE());