Menganalisis performa database dengan Peristiwa yang Diperluas

Halaman ini menjelaskan cara menggunakan Peristiwa yang Diperluas (XEvents) pada instance Anda.

Cloud SQL mendukung penggunaan XEvents untuk memantau, mengidentifikasi, dan memecahkan masalah performa database Anda. Untuk melakukannya, buat sesi XEvent dan baca file output XEvent. Anda dapat membaca file output XEvent baik pada instance maupun dengan mendownload file XEvent dari bucket Cloud Storage.

Sebelum memulai

Jika Anda ingin mengupload file XEvent ke bucket Cloud Storage, buat bucket di akun Google Cloud Anda.

Praktik terbaik

  • Untuk menghindari transfer file besar antar-region, sebaiknya lakukan salah satu hal berikut:
    • Membuat bucket Cloud Storage multi-regional
    • Menyiapkan bucket Cloud Storage tujuan di region yang sama dengan instance
  • Sebelum menggunakan XEvents, aktifkan peningkatan penyimpanan otomatis. File output XEvent, bergantung pada ukuran total dan interval retensinya, mungkin memerlukan kapasitas disk yang signifikan.
  • Agar tidak menyimpan terlalu banyak file XEvent dalam waktu yang lama, siapkan kebijakan retensi data untuk bucket Cloud Storage Anda.
  • Jika Anda membuat sesi XEvent menggunakan UI SSMS, tetapi beberapa kotak untuk nilai input tidak muncul, ubah ukuran jendela Create XEvent Session.

Cara membuat sesi XEvent

XEvents diaktifkan pada instance Anda secara otomatis.

Menggunakan CREATE EVENT SESSION untuk menentukan sesi XEvent baru. Anda juga dapat menggunakan antarmuka pengguna dari SQL Server Management Studio (SSMS) untuk membuat sesi XEvent.

Cloud SQL menerapkan parameter berikut untuk semua sesi XEvent:

Parameter Deskripsi Nilai yang diizinkan
FILENAME Menentukan nama file dan jalur untuk menyimpan data Sesi XEvents. Jalur apa pun yang diawali dengan /var/opt/mssql/xevents/
MAX_FILE_SIZE Menentukan ukuran maksimum setiap file output sebelum file baru dibuat. Minimum 10 MB
Maksimum 1 GB
MAX_MEMORY Menentukan jumlah maksimum memori yang dialokasikan ke sesi untuk buffering peristiwa. Minimum 4 MB
Maksimum 8 MB
MAX_DISPATCH_LATENCY Menentukan waktu maksimum (dalam detik) saat peristiwa dapat tetap berada dalam antrean pengiriman peristiwa sebelum dikirim ke target. Minimum 1 detik
Maksimum 30 detik
MAX_EVENT_SIZE Menetapkan ukuran maksimum setiap peristiwa, dalam byte. Minimum 4 MB
Maksimum 8 MB

Parameter konfigurasi sesi XEvent

Anda dapat mengonfigurasi sesi XEvent menggunakan parameter berikut sebagai tanda kustom:

Parameter Deskripsi
cloud sql xe bucket name Tentukan bucket Cloud Storage tempat Anda ingin mengupload output sesi XEvent. Jika hal ini tidak ditentukan, Cloud SQL tidak akan mengupload output sesi XEvent data Anda ke Cloud Storage.
cloud sql xe output total disk size (mb) Tentukan jumlah kapasitas disk yang akan dicadangkan untuk output semua sesi XEvent. Jika tidak ditentukan, Cloud SQL akan menggunakan kapasitas disk default sebesar 512 MB. Jika file {i>output<i} XEvent menggunakan ruang {i>disk<i} lebih dari nilai cloud sql xe output total disk size (mb), lalu Cloud SQL akan menghapus file ini dari disk.
cloud sql xe file retention (mins) Tentukan waktu retensi pada instance dalam menit untuk file yang dibuat oleh target file sesi XEvent. Jika tidak ditentukan, Cloud SQL akan menggunakan nilai default 7 hari.
cloud sql xe upload interval (mins) Tentukan interval upload untuk file XEvent yang diupload ke Cloud Storage. Jika tidak ditentukan, Cloud SQL akan menggunakan nilai default 10 menit.

Untuk mengetahui informasi selengkapnya tentang cara menyetel tanda ini, lihat Mengonfigurasi tanda database.

Cara membaca file output sesi XEvent

Anda dapat membaca file output sesi XEvent dari instance Cloud SQL atau bucket Cloud Storage.

Membaca file output XEvent dari instance

Untuk mengambil data dari file XEvent yang dibuat sesi XEvent, gunakan fungsi sys.fn_xe_file_target_read_file.

Berikut contohnya:

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

Membaca file output XEvent dari bucket

Untuk membaca file output XEvent dari bucket Cloud Storage, download file dari bucket ke instance SQL Server. Anda dapat mendownload dari salah satu instance berikut:

  • Instance Compute Engine Windows
  • Instance Compute Engine Linux
  • Jenis instance lain yang menjalankan SQL Server

Kemudian, transfer file output XEvent dari bucket ke lokasi yang dapat diakses instance tersebut, seperti disk lokalnya. Berikutnya, untuk menampilkan informasi dari XEvent file output, jalankan fungsi sys.fn_xe_file_target_read_file dengan akun yang memiliki Izin VIEW SERVER STATE di server. Untuk informasi selengkapnya tentang izin, lihat Izin.

Memantau sesi XEvent

Anda dapat memantau aktivitas terkait sesi XEvent melalui file xevents.log untuk operasi berikut:

  • File output XEvent dihapus dari disk, yang tidak diupload ke Cloud Storage dan menggunakan kapasitas disk yang lebih tinggi dari nilai yang terkait dengan cloud sql xe output total disk size (mb).
  • File output XEvent dihapus dari disk, yang tidak diupload ke Cloud Storage dan lebih lama dari nilai yang terkait dengan cloud sql xe file retention.

Pertimbangan untuk replika baca

Bagian ini berisi informasi tentang sesi XEvent untuk replika baca baru dan yang sudah ada.

Untuk replika baca baru

  • Semua parameter konfigurasi sesi XEvent yang diteruskan melalui flag database pada instance asli tersedia di replika baca yang baru dibuat.
  • Semua sesi XEvent yang ada pada instance asli saat replika baca dibuat tersedia di replika baca. Perhatikan bahwa sesi XEvent pada replika baca harus dimulai secara manual, kecuali jika sesi XEvent dikonfigurasi untuk dimulai secara otomatis. Untuk informasi selengkapnya, lihat Cara membuat sesi XEvent.
  • Jika Anda meng-clone instance utama, setiap tanda database yang muncul pada instance utama akan disebarkan ke instance yang di-clone. Selain itu, Anda harus memberikan izin ke akun layanan dari instance yang di-clone untuk mengakses bucket Cloud Storage lagi.

Untuk replika baca yang ada

  • Parameter konfigurasi sesi XEvent yang diteruskan melalui flag database ke instance asli tidak disebarkan untuk membaca replika.
  • Sesi XEvent yang dibuat pada instance asli tidak disebarkan ke replika baca.