Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Membaca file XEL log peristiwa yang dibuat oleh target Kejadian event_file yang Diperluas. Setiap baris dalam tataan hasil mewakili peristiwa. Data peristiwa dikembalikan dalam format XML.
File XEL juga dapat dibaca oleh SQL Server 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. path adalah nvarchar(260) tanpa default.
Ketika digunakan dengan file dalam sistem file lokal, jalur harus menyertakan nama file log sesi peristiwa. Nama file dapat berisi
*sebagai kartubebas untuk membaca data dari beberapa file.Saat digunakan dengan blob dalam kontainer Azure Storage, jalur adalah URL HTTP yang dibangun oleh perangkaian dua bagian:
Jalur ke kontainer penyimpanan Azure Storage, diikuti dengan garis miring (
/).Awalan umum untuk nama blob dalam kontainer yang harus dibaca. Untuk membaca satu blob, gunakan nama lengkap blob.
Misalnya, menggunakan
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessionsebagai jalur mengambil data dari semua blob dengan nama yang dimulai denganxe_session, dan terlepas dari sisa nama blob termasuk ekstensi. Kartubebas tidak dapat ditentukan.
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.
Nama file harus berupa nilai yang dikembalikan dalam kumpulan sys.fn_xe_file_target_read_file hasil panggilan fungsi dengan jalur yang sama.
initial_offset
Digunakan untuk menentukan baca offset terakhir sebelumnya. Melompati semua peristiwa hingga offset (inklusif). Enumerasi peristiwa dimulai setelah offset ditentukan.
initial_offset besar. Jika NULL ditentukan sebagai argumen, seluruh file 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.
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, Azure SQL Database, dan Azure SQL Managed Instance. |
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, file yang dibuat oleh event_file target selalu disimpan sebagai blob dalam kontainer Azure Storage.
Anda dapat menggunakan sys.fn_xe_file_target_read_file untuk membaca data dari blob ini jika kredensial yang memungkinkan akses ke kontainer Azure Storage ada. Untuk panduan, tinjau Membuat sesi peristiwa dengan target event_file di Azure Storage.
Jika Anda menentukan jalur 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 file dalam sistem file lokal
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());
B. Mengambil data dari blob dalam kontainer Azure Storage
Membaca data dari semua blob dalam kontainer dengan nama yang dimulai dengan xe_session_.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Membaca data dari xe_session_0_133614763336380000.xel blob.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
NULL,
NULL,
NULL
);
Membaca data dari blob yang xe_session_0_133614763336380000.xel dimulai dengan offset 33280.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
33280
);
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