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.
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());
Konten terkait
- Tampilan Manajemen Dinamis Peristiwa yang Diperluas
- Tampilan Katalog Peristiwa yang Diperluas (Transact-SQL)
- Gambaran umum Kejadian yang Diperluas
- Target untuk Kejadian yang Diperluas
- Menampilkan data peristiwa di SQL Server Management Studio
- Mengonversi Skrip Pelacakan SQL yang Ada ke Sesi Kejadian yang Diperluas
- Menggunakan sesi system_health