Gambaran umum Kejadian yang Diperluas
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Arsitektur Extended Events (XEvents) memungkinkan pengguna mengumpulkan data sebanyak atau sekecil yang diperlukan untuk memantau, mengidentifikasi, atau memecahkan masalah performa di SQL Server, Azure SQL Database, dan Azure SQL Managed Instance. Extended Events sangat dapat dikonfigurasi, ringan, dan diskalakan dengan baik. Untuk informasi selengkapnya, lihat Arsitektur Peristiwa yang Diperluas.
Extended Events menggantikan fitur SQL Trace dan SQL Server Profiler yang tidak digunakan lagi.
Untuk mulai menggunakan Acara yang Diperluas, gunakan Mulai Cepat: Acara yang Diperluas.
Catatan
Jika Anda menggunakan Azure SQL, pelajari bagaimana contoh Kode dapat berbeda untuk Azure SQL Database dan SQL Managed Instance dan selengkapnya tentang Peristiwa yang diperluas di Azure SQL Database.
Manfaat Acara yang Diperluas
Extended Events adalah sistem pemantauan performa ringan yang menggunakan sumber daya sistem minimal sekaligus memberikan tampilan mesin database yang terperinci dan mendalam. SQL Server Management Studio menyediakan antarmuka pengguna grafis untuk Extended Events untuk membuat, memodifikasi, dan menghilangkan sesi peristiwa dan untuk menampilkan dan menganalisis data sesi. Untuk mempelajari selengkapnya tentang dukungan Extended Events di Management Studio, lihat:
Konsep Extended Events
Extended Events dibangun berdasarkan konsep yang ada dari Pelacakan Peristiwa untuk Windows, seperti konsumen peristiwa dan peristiwa, dan memperkenalkan konsep baru seperti tindakan dan predikat.
Tabel berikut ini menyediakan referensi dokumentasi untuk memahami konsep dalam Acara yang Diperluas.
Artikel | Deskripsi |
---|---|
Paket Acara yang Diperluas | Menjelaskan paket Extended Events yang berisi objek. Objek ini digunakan untuk mendapatkan dan memproses data saat sesi Extended Events berjalan. |
Target untuk Kejadian yang Diperluas | Menjelaskan konsumen peristiwa yang dapat menerima data selama sesi peristiwa. |
Mesin Acara yang Diperluas | Menjelaskan mesin yang mengimplementasikan dan mengelola sesi Extended Events. |
Sesi Acara yang Diperluas | Menjelaskan sesi Acara yang Diperluas. |
Arsitektur Acara yang Diperluas
Extended Events adalah nama untuk sistem penanganan peristiwa umum untuk sistem server. Infrastruktur Extended Events mendukung korelasi data dari mesin database, dan dalam kondisi tertentu, korelasi data dari sistem operasi dan aplikasi database. Dalam kasus sistem operasi, output Extended Events harus diarahkan ke Pelacakan Peristiwa untuk Windows (ETW). ETW dapat menghubungkan data peristiwa dengan sistem operasi atau data peristiwa aplikasi.
Semua aplikasi memiliki titik eksekusi yang berguna baik di dalam maupun di luar aplikasi. Di dalam aplikasi, pemrosesan asinkron dapat diantrekan menggunakan informasi yang dikumpulkan selama eksekusi awal tugas. Di luar aplikasi, titik eksekusi menyediakan utilitas pemantauan dengan informasi. Informasinya adalah tentang karakteristik perilaku dan performa aplikasi yang dipantau.
Extended Events mendukung penggunaan data peristiwa di luar proses. Data ini biasanya digunakan oleh pengguna baik mengelola atau mendukung produk dengan melakukan pemantauan performa atau oleh pengguna yang mengembangkan aplikasi pada produk untuk tujuan penelusuran kesalahan. Data digunakan atau dianalisis menggunakan alat seperti SQL Server Management Studio, XEvent Profiler dan Performance Monitor, dan alat baris perintah T-SQL atau Windows.
Extended Events memiliki aspek desain utama berikut:
- Mesin Extended Events adalah agnostik peristiwa. Mesin dapat mengikat peristiwa apa pun ke target apa pun, karena mesin tidak dibatasi oleh konten peristiwa. Untuk informasi selengkapnya tentang mesin Acara yang Diperluas, lihat Mesin Acara yang Diperluas.
- Peristiwa dipisahkan dari konsumen peristiwa, yang disebut target dalam Acara yang Diperpanjang. Ini berarti bahwa setiap target dapat menerima peristiwa apa pun. Selain itu, setiap peristiwa yang dinaikkan dapat secara otomatis digunakan oleh target, yang dapat mencatat atau memberikan konteks peristiwa tambahan. Untuk informasi selengkapnya, lihat Target untuk Kejadian yang Diperluas.
- Peristiwa berbeda dari tindakan yang harus diambil saat peristiwa terjadi. Oleh karena itu, tindakan apa pun dapat dikaitkan dengan peristiwa apa pun.
- Predikat dapat secara dinamis memfilter kapan data peristiwa harus diambil. Pemfilteran dinamis menambah fleksibilitas infrastruktur Extended Events. Untuk informasi selengkapnya, lihat Paket Acara yang Diperluas.
Extended Events dapat secara sinkron menghasilkan data peristiwa (dan secara asinkron memproses data tersebut), yang menyediakan solusi fleksibel untuk penanganan peristiwa. Selain itu, Extended Events menyediakan fitur berikut:
- Pendekatan terpadu untuk menangani peristiwa di seluruh sistem server, sambil memungkinkan pengguna mengisolasi peristiwa tertentu untuk tujuan pemecahan masalah.
- Integrasi dengan, dan dukungan untuk alat ETW yang ada.
- Mekanisme penanganan peristiwa yang dapat dikonfigurasi sepenuhnya yang menggunakan Transact-SQL.
- Kemampuan untuk memantau proses aktif secara dinamis, sekaligus memiliki efek minimal pada proses tersebut.
- Sesi kesehatan sistem default yang berjalan tanpa efek performa yang terlihat. Sesi ini mengumpulkan data sistem yang dapat Anda gunakan untuk membantu memecahkan masalah performa. Untuk informasi selengkapnya, lihat Menggunakan sesi system_health.
Tugas Acara yang Diperluas
Menggunakan Management Studio atau Transact-SQL untuk menjalankan pernyataan Transact-SQL Data Definition Language (DDL), menggunakan tampilan dan fungsi manajemen dinamis, atau tampilan katalog, Anda dapat membuat solusi pemecahan masalah Peristiwa Diperluas SQL Server yang sederhana atau kompleks untuk lingkungan SQL Server Anda.
Deskripsi tugas | Artikel |
---|---|
Gunakan Object Explorer untuk mengelola sesi peristiwa. | Mengelola Sesi Peristiwa di Object Explorer |
Menjelaskan cara membuat sesi Extended Events. | Sesi Acara yang Diperluas |
Menjelaskan cara menampilkan dan menyegarkan data target. | Menampilkan data peristiwa di SQL Server Management Studio |
Menjelaskan cara menggunakan alat Extended Events untuk membuat dan mengelola sesi Extended Events Anda. | Alat Kejadian yang Diperluas |
Menjelaskan cara mengubah sesi Extended Events. | Mengubah Sesi Kejadian yang Diperluas |
Menjelaskan cara mendapatkan informasi tentang bidang yang terkait dengan peristiwa. | Mendapatkan Bidang untuk Semua Peristiwa |
Menjelaskan cara mengetahui peristiwa apa yang tersedia dalam paket terdaftar. | SELECT dan JOIN Dari Tampilan Sistem untuk Peristiwa yang Diperluas di SQL Server |
Menjelaskan cara menentukan target Extended Events apa yang tersedia dalam paket terdaftar. | Target untuk Kejadian yang Diperluas |
Menjelaskan cara melihat peristiwa dan tindakan Extended Events yang setara dengan setiap peristiwa SQL Trace dan kolom terkait. | Melihat Acara yang Diperluas Setara dengan Kelas Peristiwa Pelacakan SQL |
Menjelaskan cara menemukan parameter yang dapat Anda atur saat menggunakan ADD TARGET klausa dalam CREATE EVENT SESSION atau ALTER EVENT SESSION pernyataan. |
Target untuk Kejadian yang Diperluas |
Menjelaskan cara mengonversi skrip SQL Trace yang ada ke sesi Extended Events. | Mengonversi Skrip Pelacakan SQL yang Ada ke Sesi Kejadian yang Diperluas |
Menjelaskan cara menentukan kueri mana yang menahan kunci, rencana kueri, dan tumpukan Transact-SQL pada saat kunci diambil. | Tentukan Kueri Mana yang Menahan Kunci |
Menjelaskan cara mengidentifikasi sumber kunci. | Temukan Objek yang Memiliki Kunci Terbanyak Yang Diambil di Atasnya |
Menjelaskan cara menggunakan Extended Events dengan Pelacakan Peristiwa untuk Windows untuk memantau aktivitas sistem. | Memantau Aktivitas Sistem Menggunakan Kejadian yang Diperluas |
Menggunakan Tampilan Katalog dan Tampilan Manajemen Dinamis (DMV) untuk Peristiwa yang Diperluas | SELECT dan JOIN Dari Tampilan Sistem untuk Peristiwa yang Diperluas di SQL Server |
Gunakan kueri T-SQL berikut untuk mengembalikan semua kemungkinan peristiwa dan deskripsinya:
SELECT obj1.name AS [XEvent-name],
col2.name AS [XEvent-column],
obj1.description AS [Descr-name],
col2.description AS [Descr-column]
FROM sys.dm_xe_objects AS obj1
INNER JOIN sys.dm_xe_object_columns AS col2
ON col2.object_name = obj1.name
ORDER BY obj1.name,
col2.name
Contoh kode dapat berbeda untuk Azure SQL Database dan SQL Managed Instance
Beberapa contoh kode Transact-SQL yang ditulis untuk SQL Server memerlukan perubahan kecil untuk dijalankan di Azure. Satu kategori contoh kode tersebut melibatkan tampilan katalog yang awalan namanya berbeda tergantung pada jenis mesin database:
server_
- awalan untuk SQL Server dan Azure SQL Managed Instancedatabase_
- awalan untuk Azure SQL Database dan SQL Managed Instance
Azure SQL Database hanya mendukung sesi peristiwa cakupan database. SQL Server Management Studio (SSMS) sepenuhnya mendukung sesi peristiwa cakupan database untuk Azure SQL Database: node Extended Events yang berisi sesi cakupan database muncul di bawah setiap database di Object Explorer.
Azure SQL Managed Instance mendukung sesi cakupan database dan sesi cakupan server. SSMS sepenuhnya mendukung sesi cakupan server untuk SQL Managed Instance: node Extended Events yang berisi semua sesi cakupan server muncul di bawah folder Manajemen untuk setiap instans terkelola di Object Explorer.
Catatan
Sesi cakupan server direkomendasikan untuk instans terkelola. Sesi cakupan database tidak ditampilkan di Object Explorer di SSMS untuk Azure SQL Managed Instance. Sesi cakupan database hanya dapat dikueri dan dikelola dengan Transact-SQL saat menggunakan instans terkelola.
Untuk ilustrasi, tabel berikut mencantumkan dan membandingkan dua subset tampilan katalog. Untuk brevity, subset dibatasi untuk melihat nama yang juga berisi string _event
. Subset memiliki awalan nama yang berbeda karena mendukung jenis mesin database yang berbeda.
Nama di SQL Server dan Azure SQL Managed Instance | Nama di Azure SQL Database dan Azure SQL Managed Instance |
---|---|
server_event_notifications server_event_session_actions server_event_session_events server_event_session_fields server_event_session_targets server_event_sessions server_events server_trigger_events |
database_event_session_actions database_event_session_events database_event_session_fields database_event_session_targets database_event_sessions |
Dua daftar dalam tabel sebelumnya akurat per Maret 2022. Untuk daftar terbaru, jalankan pernyataan Transact-SQL SELECT
berikut:
SELECT name
FROM sys.all_objects
WHERE
(name LIKE 'database[_]%' OR
name LIKE 'server[_]%' )
AND name LIKE '%[_]event%'
AND type = 'V'
AND SCHEMA_NAME(schema_id) = 'sys'
ORDER BY name;
Konten terkait
- Tampilan Manajemen Dinamis Peristiwa yang Diperluas
- Tampilan Katalog Peristiwa yang Diperluas (Transact-SQL)
- Misteri SQL: Pelacakan kausalitas vs Urutan Peristiwa untuk Sesi XEvent
- Menganalisis dan mencegah kebuntuan di Azure SQL Database
- Mulai Cepat: Acara yang Diperluas
- Kode target File Peristiwa untuk Peristiwa yang Diperluas di Azure SQL Database
- Extended events di Azure SQL Database
- XELite: Pustaka lintas platform untuk membaca XEvents dari file XEL atau streaming SQL langsung
- Cmdlet PowerShell Read-SQLXEvent