Sesi Acara yang Diperluas

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Sesi Extended Events dibuat dalam proses SQL Server Database Engine yang menghosting mesin Extended Events. Aspek berikut dari sesi Extended Events menyediakan konteks untuk memahami infrastruktur Extended Events dan pemrosesan yang terjadi:

  • Status sesi. Berbagai status bahwa sesi Extended Events berada di saat CREATE EVENT SESSION dan ALTER EVENT SESSION pernyataan dijalankan.

  • Konten sesi dan karakteristik. Konten sesi Extended Events, seperti target dan peristiwa, dan bagaimana objek ini terkait dalam sesi atau di antara sesi.

Status sesi

Ilustrasi berikut menunjukkan berbagai status sesi Extended Events.

Diagram showing Extended Events session state.

Mengacu pada gambar sebelumnya, amati bahwa status sesi berubah karena perintah bahasa definisi data (DDL) yang berbeda dikeluarkan untuk sesi peristiwa. Tabel berikut ini menjelaskan perubahan ini dalam status.

Label ilustrasi Pernyataan DDL Deskripsi
Buat CREATE EVENT SESSION Proses host membuat objek sesi yang berisi metadata yang disediakan oleh CREATE EVENT SESSION. Proses host memvalidasi definisi sesi, memvalidasi tingkat izin pengguna, dan menyimpan metadata dalam master database. Pada titik ini, sesi tidak aktif.
Mengubah ALTER EVENT SESSION, STATE=START Proses host memulai sesi. Proses host membaca metadata yang disimpan, memvalidasi definisi sesi, memverifikasi tingkat izin pengguna, dan membuat sesi. Objek sesi, seperti peristiwa dan target, dimuat dan penanganan peristiwa aktif.
Mengubah ALTER EVENT SESSION, STATE=STOP Proses host menghentikan sesi aktif tetapi mempertahankan metadata.
Drop DROP EVENT SESSION Bergantung pada apakah sesi aktif atau tidak, Jatuhkan (DROP SESSION) menghapus metadata dan menutup sesi aktif, atau menghapus metadata sesi.

Konten dan karakteristik sesi

Sesi Extended Events telah menyiratkan batasan dalam konfigurasi satu sesi tidak mengubah konfigurasi sesi lain. Namun, batas-batas ini tidak mencegah peristiwa atau jenis target digunakan dalam lebih dari satu sesi.

Ilustrasi berikut menunjukkan konten sesi dan hubungan antara paket dan sesi.

Diagram showing object coexistence and sharing in sessions.

Mengacu pada ilustrasi sebelumnya, perlu diingat bahwa:

  • Pemetaan antara objek paket dan sesi banyak ke banyak, yang berarti bahwa objek dari jenis tertentu dapat muncul dalam beberapa sesi, dan sesi dapat berisi beberapa objek.
  • Peristiwa yang sama (Peristiwa 1) atau jenis target (Target 1) dapat digunakan dalam lebih dari satu sesi.

Sesi memiliki karakteristik berikut:

  • Tindakan dan predikat terikat pada peristiwa per sesi. Jika Anda memiliki Peristiwa 1 di Sesi A dengan Tindakan 1 dan Predikat Z, hal ini tidak memengaruhi peristiwa 1 di Sesi B dengan Tindakan 2 dan Tindakan 3 tanpa predikat.
  • Kebijakan dilampirkan ke sesi untuk menangani buffering dan pengiriman, dan pelacakan kausalitas.

Buffering mengacu pada cara data peristiwa disimpan saat sesi peristiwa sedang berjalan. Kebijakan buffering menentukan berapa banyak memori yang akan digunakan untuk data peristiwa, dan kebijakan kehilangan untuk peristiwa tersebut. Pengiriman mengacu pada durasi peristiwa waktu tetap berada di buffer sebelum dilayani ke target untuk diproses.

Trek pelacakan kausalitas berfungsi di beberapa tugas. Saat pelacakan kausalitas diaktifkan, setiap peristiwa yang diaktifkan memiliki ID aktivitas unik di seluruh sistem. ID aktivitas adalah kombinasi dari nilai GUID yang tetap konstan di semua peristiwa untuk tugas, dan nomor urut yang bertahap setiap kali peristiwa diaktifkan. Ketika satu tugas menyebabkan pekerjaan dilakukan pada tugas lain, ID aktivitas induk dikirim ke tugas anak. Tugas anak menghasilkan ID aktivitas induk saat pertama kali mengaktifkan peristiwa.