Halaman ini menjelaskan cara memantau dan memecahkan masalah kueri yang aktif di database Anda. Kueri aktif adalah kueri yang berjalan lama di database Anda yang dapat memengaruhi performa. Memantau kueri ini dapat membantu mengidentifikasi penyebab latensi sistem dan penggunaan CPU yang tinggi.
Anda dapat melihat kueri aktif di dasbor insight kueri. Kueri ini ditampilkan berdasarkan waktu mulai transaksi. Jika ada banyak kueri yang berjalan, hasil mungkin dibatasi pada sebagian total kueri karena batasan memori yang diterapkan sistem pada pengumpulan data.
Sebelum memulai
Untuk mulai melihat kueri aktif, Anda harus mengaktifkan fitur insight kueri lanjutan dan mengaktifkan analisis kueri aktif untuk instance Anda sebagai berikut:
Di konsol Google Cloud , buka halaman Clusters.
Dari daftar cluster dan instance, klik instance primary atau read pool.
Klik Insight kueri.
Klik Edit Settings.
Di jendela Edit setelan Query Insight, pilih Aktifkan fitur Query Insight lanjutan untuk AlloyDB > Analisis Kueri Aktif.
Klik Simpan perubahan.
Di jendela Perubahan memerlukan mulai ulang, klik Konfirmasi dan mulai ulang.
Anda dapat menggunakan bantuan Gemini Cloud Assist untuk membantu Anda memantau dan memecahkan masalah resource AlloyDB untuk PostgreSQL. Untuk mengetahui informasi selengkapnya, lihat Memantau dan memecahkan masalah dengan bantuan Gemini.
Melihat kueri aktif
Untuk melihat kueri aktif Anda, lakukan hal berikut:
Buat peran kustom dan tambahkan izin Identity and Access Management (IAM)
databaseinsights.monitoringViewer
.Tambahkan peran ini untuk setiap pengguna yang melihat kueri aktif.
Di Google Cloud console, buka halaman AlloyDB.
Klik nama cluster untuk membuka halaman Ringkasan.
Pilih tab Query Insight. Dasbor insight kueri menampilkan detail tentang cluster yang dipilih.
Klik tab Tampilan kueri aktif. Tab ini berisi ringkasan kueri aktif yang berjalan bersama dengan 50 transaksi terlama.
Anda dapat memfilter informasi berdasarkan salah satu hal berikut:
- Database: memfilter pemuatan kueri di database tertentu atau semua database.
- Pengguna: memfilter pemuatan kueri dari pengguna database tertentu atau semua pengguna.
- ID Node: hanya ditampilkan untuk instance kumpulan baca; memfilter beban kueri pada node instance kumpulan baca tertentu atau semua node.
Kartu skor ringkasan semua kueri aktif yang dinormalisasi: memberikan ringkasan semua kueri aktif dengan menampilkan total koneksi berdasarkan parameter berikut:
- Distribusi koneksi aktif yang dikategorikan berdasarkan status koneksi.
- Distribusi koneksi aktif berdasarkan berbagai jenis peristiwa tunggu.
- Distribusi durasi transaksi untuk kueri yang tidak dalam status tidak ada aktivitas.
Transaksi yang berjalan paling lama: memberikan ringkasan 50 kueri teratas yang berjalan dalam status
active
danidle in transaction
berdasarkan waktu eksekusi menurun.
Anda dapat melihat daftar lima puluh kueri aktif yang dinormalisasi teratas di dasbor insight kueri.
Kueri aktif yang dinormalisasi menghapus data sensitif, dan menampilkan ringkasan. Dua kueri yang identik kecuali untuk nilai klausa WHERE memiliki ringkasan yang sama. Misalnya, pertimbangkan tiga contoh kueri berikut:
select * from my_table where id = 1;
select * from my_table where id = 2;
select * from my_table where id = 100;
Versi yang dinormalisasi dari kueri ini adalah ringkasan berikut:
select * from my_table where id = ?;
Kueri yang berjalan di sesi yang berbeda ditampilkan sebagai entri yang berbeda di dasbor.
Melihat transaksi yang berjalan paling lama
Tabel berikut menjelaskan kolom tabel Transaksi yang berjalan paling lama di dasbor insight kueri:
Nama kolom | Deskripsi |
---|---|
ID proses | ID Proses adalah ID unik koneksi database. |
ID Node | ID Node adalah ID unik dari node instance read pool tempat kueri dijalankan. |
Kueri | Teks kueri SQL yang dinormalisasi. |
Status | Status koneksi saat ini. Nilai status mencakup active dan idle in transaction . |
Durasi sesi | Durasi sesi saat ini (dalam detik). |
Durasi transaksi | Durasi transaksi saat ini (dalam detik). |
Durasi kueri | Durasi Kueri aktif saat ini (dalam detik). Durasi kueri dalam status idle in transaction adalah 0 karena tidak berjalan secara aktif. |
Jenis peristiwa tunggu | Jenis peristiwa tunggu yang terjadi selama eksekusi kueri. |
Peristiwa tunggu | Peristiwa tunggu yang terjadi selama eksekusi kueri. |
Database | Nama database tempat koneksi ini berjalan. |
Nama aplikasi | Nama aplikasi tempat koneksi ini berjalan. |
Nama pengguna | Nama pengguna database yang terhubung ke database. |
Alamat klien | Alamat IP spesifik klien yang mengirim kueri. |
Tindakan | Berisi link untuk menghentikan transaksi. |
Tampilan diperbarui secara otomatis setiap 60 detik.
Menggunakan kolom Database dan Pengguna untuk memfilter dan memperbarui data di halaman.
Untuk menganalisis data statis, nonaktifkan Muat ulang otomatis dan gunakan kolom Filter pada tabel Transaksi yang berjalan paling lama sesuai kebutuhan.
Menghentikan kueri atau transaksi
Untuk menghentikan kueri atau transaksi, Anda harus memiliki peran databaseinsights.operationsAdmin
. Untuk mengetahui informasi selengkapnya, lihat Referensi peran dasar dan bawaan IAM.
Transaksi dapat berisi beberapa kueri. Untuk mengidentifikasi kueri mana yang aktif saat ini, lihat kolom Kueri dalam tabel Transaksi yang berjalan paling lama.
Untuk menghentikan kueri atau transaksi, selesaikan langkah-langkah berikut:
- Pilih kueri di tabel Transaksi yang berjalan paling lama.
- Scroll ke kanan ke kolom Tindakan.
- Klik Hentikan koneksi.
Di jendela Akhiri koneksi, klik Konfirmasi.
Halaman dimuat ulang setelah memulai penghentian. Jika penghentian gagal, tidak ada pemberitahuan dan kueri akan terus muncul dalam daftar Kueri Aktif. Jika penghentian berhasil, kueri tidak akan lagi ditampilkan dalam daftar.