Paket Acara yang Diperluas

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure 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 Database
  • sqlos - 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:

  • Aktivitas
  • 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.

Diagram that shows the relationship of a module, packages, and objects.

Aktivitas

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.

Istilah 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.