Paket Acara yang Diperluas
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Paket adalah kontainer untuk objek Extended Events di Mesin Database SQL Server. Misalnya, paket berikut ini ada di Mesin Database apa pun yang mendukung Kejadian yang Diperluas:
package0
- Objek sistem Extended Events. Ini adalah paket default.sqlserver
- Objek yang terkait dengan Mesin Databasesqlos
- Objek terkait SQL Operating System (SQLOS).
Catatan
Paket SecAudit
digunakan secara internal oleh fitur Audit. Tidak ada objek dalam paket ini yang tersedia melalui bahasa definisi data (DDL) Extended Events.
Paket diidentifikasi dengan nama, GUID, dan modul biner yang berisi paket. Modul dapat berupa pustaka tautan yang dapat dieksekusi atau dinamis. Untuk informasi selengkapnya, lihat sys.dm_xe_packages.
Paket dapat berisi salah satu atau semua objek berikut, yang dibahas secara lebih rinci nanti dalam artikel ini:
- Acara
- Target
- Tindakan
- Jenis
- Predikat
- Maps
Objek dari paket yang berbeda dapat dicampur dalam sesi peristiwa. Untuk informasi selengkapnya, lihat Sesi Acara yang Diperluas.
Konten paket
Ilustrasi berikut menunjukkan objek yang bisa ada dalam paket.
Acara
Peristiwa memantau titik minat dalam jalur eksekusi program, seperti SQL Server. Ketika peristiwa terjadi, itu berisi fakta bahwa titik minat tercapai, dan informasi status sejak peristiwa dipicu.
Peristiwa hanya dapat digunakan untuk tujuan pelacakan atau untuk memicu tindakan. Tindakan ini dapat sinkron atau asinkron.
Catatan
Peristiwa tidak memiliki pengetahuan tentang tindakan yang dapat dipicu sebagai respons terhadap pemecahan peristiwa.
Sekumpulan peristiwa dalam paket tidak dapat berubah setelah paket terdaftar di Extended Events.
Semua peristiwa memiliki skema versi yang menentukan kontennya. Skema ini terdiri dari kolom peristiwa dengan jenis yang ditentukan. Peristiwa jenis tertentu harus selalu menyediakan datanya dalam urutan yang sama persis yang ditentukan dalam skema. Namun, target peristiwa tidak perlu menggunakan semua data yang disediakan.
Kategorisasi peristiwa
Extended Events menggunakan model kategorisasi peristiwa yang mirip dengan Event Tracing for Windows (ETW). Dua properti peristiwa digunakan untuk kategorisasi, saluran, dan kata kunci. Menggunakan properti ini mendukung integrasi Extended Events dengan ETW dan alatnya.
Saluran mengidentifikasi audiens untuk suatu acara. Saluran dijelaskan dalam tabel berikut.
Term | Definisi |
---|---|
Admin | Peristiwa admin terutama ditargetkan untuk pengguna akhir, administrator, dan dukungan. Peristiwa yang ditemukan di saluran Admin dapat menunjukkan masalah dengan solusi yang ditentukan dengan baik yang dapat ditindak lanjuti administrator. Contoh peristiwa admin adalah ketika aplikasi gagal tersambung. Peristiwa ini didokumenkan atau memiliki pesan yang terkait dengannya yang memberi tahu pembaca apa yang harus dilakukan untuk memperbaiki masalah. |
Operasional | Peristiwa operasional digunakan untuk menganalisis dan mendiagnosis masalah atau kemunculan. Mereka dapat digunakan untuk memicu alat atau tugas berdasarkan masalah atau kemunculannya. |
Analitik | Peristiwa analitik diterbitkan dalam volume tinggi. Mereka menjelaskan operasi program dan biasanya digunakan dalam penyelidikan performa. |
Debug | Peristiwa debug digunakan terutama oleh pengembang untuk mendiagnosis masalah untuk penelusuran kesalahan. Peristiwa di saluran Debug mengembalikan data status khusus implementasi internal. Skema dan data yang dikembalikan peristiwa dapat berubah, menjadi tidak valid, atau dihapus dalam versi Mesin Database di masa mendatang tanpa pemberitahuan. |
Kata kunci khusus aplikasi dan memungkinkan pengelompokan peristiwa terkait yang lebih halus, yang memudahkan Anda menentukan dan mengambil peristiwa yang ingin Anda gunakan dalam sesi. Anda bisa menggunakan kueri berikut untuk mendapatkan informasi kata kunci.
SELECT map_value AS Keyword
FROM sys.dm_xe_map_values
WHERE name = 'keyword_map';
Target
Target adalah konsumen peristiwa. Menargetkan peristiwa proses, baik secara sinkron pada utas yang menembakkan peristiwa atau secara asinkron pada utas yang disediakan sistem. Extended Events menyediakan beberapa jenis target yang dapat Anda gunakan sesuai untuk mengarahkan output peristiwa. Untuk informasi selengkapnya, lihat Target untuk Kejadian yang Diperluas.
Anda menggunakan ADD TARGET
klausul untuk menambahkan target ke sesi peristiwa.
Tindakan
Tindakan adalah respons terprogram atau serangkaian respons terhadap suatu peristiwa. Tindakan terikat ke suatu peristiwa, dan setiap peristiwa dapat memiliki serangkaian tindakannya sendiri.
Catatan
Tindakan yang ditujukan untuk peristiwa tertentu tidak dapat mengikat peristiwa lain.
Tindakan yang terikat ke peristiwa dipanggil secara sinkron pada utas yang menembakkan peristiwa. Ada banyak jenis tindakan dan memiliki berbagai kemampuan. Tindakan dapat:
- Mengambil dump proses
- Menyimpan informasi status dalam konteks lokal menggunakan penyimpanan variabel
- Data peristiwa agregat
- Menambahkan data ke data peristiwa
Contoh umum penggunaan tindakan meliputi:
- Mengumpulkan teks SQL kueri yang sedang dijalankan oleh utas yang menembakkan peristiwa
- Mengumpulkan handel rencana kueri, hash kueri, dan hash rencana kueri
- Kumpulkan atribut sesi yang menyebabkan peristiwa diaktifkan, termasuk nama host klien, nama utama, ID koneksi, dll.
- Mengumpulkan tumpukan panggilan
- Mengambil dump proses saat terjadi kesalahan tertentu
Anda menggunakan ACTION
klausa untuk menambahkan tindakan ke sesi peristiwa.
Predikat
Predikat adalah sekumpulan aturan logis yang digunakan untuk mengevaluasi peristiwa saat diproses. Ini memungkinkan pengguna Extended Events untuk mengambil data peristiwa secara selektif berdasarkan kriteria tertentu.
Predikat dapat menyimpan data dalam konteks lokal, yang dapat digunakan untuk membuat predikat yang mengembalikan true setiap n menit atau setiap n kali peristiwa diaktifkan. Penyimpanan konteks lokal ini juga dapat digunakan untuk memperbarui predikat secara dinamis, sehingga menekan penembakan peristiwa di masa mendatang jika peristiwa berisi data serupa.
Predikat memiliki kemampuan untuk mengambil informasi konteks, seperti ID utas, serta data spesifik peristiwa. Predikat dievaluasi sebagai ekspresi Boolean penuh, dan mendukung sirkuit pendek pada titik pertama di mana seluruh ekspresi ditemukan salah.
Catatan
Predikat dengan efek samping mungkin tidak dievaluasi jika pemeriksaan predikat sebelumnya gagal.
Anda menggunakan WHERE
klausul untuk menambahkan predikat ke sesi peristiwa.
Jenis
Dalam paket, setiap objek Extended Events memiliki jenis. Jenis berikut digunakan:
action
event
message
pred_compare
pred_source
target
type
Untuk informasi selengkapnya, lihat sys.dm_xe_objects.
Maps
Tabel peta memetakan nilai internal ke string, yang memungkinkan pengguna untuk mengetahui apa yang diwakili nilai. Alih-alih hanya dapat memperoleh nilai numerik, pengguna bisa mendapatkan deskripsi nilai internal yang bermakna. Kueri berikut ini memperlihatkan cara mendapatkan nilai peta.
SELECT map_key, map_value
FROM sys.dm_xe_map_values
WHERE name = 'lock_mode';
Kueri sebelumnya menghasilkan output berikut:
map_key | map_value |
---|---|
0 | NL |
1 | SCH_S |
2 | SCH_M |
3 | S |
4 | U |
5 | X |
6 | IS |
7 | IU |
8 | IX |
9 | SIU |
10 | SIX |
11 | UIX |
12 | BU |
13 | RS_S |
14 | RS_U |
15 | RI_NL |
16 | RI_S |
17 | RI_U |
18 | RI_X |
19 | RX_S |
20 | RX_U |
21 | LAST_MODE |
Menggunakan tabel ini sebagai contoh, asumsikan bahwa Anda memiliki kolom bernama lock_mode
, dan nilainya adalah 5
. Tabel menunjukkan bahwa 5
peta ke X
, yang berarti jenis kunci adalah Eksklusif.