Untuk mengidentifikasi penyebab latensi sistem dan penggunaan CPU yang tinggi di AlloyDB untuk PostgreSQL, Anda dapat memantau dan memecahkan masalah kueri aktif yang berjalan lama di database Anda.
Anda dapat melihat kueri aktif di halaman Query insights di konsolGoogle Cloud , yang diurutkan berdasarkan waktu mulai transaksi. Jika ada banyak kueri yang berjalan, halaman mungkin menampilkan sebagian dari total kueri karena batas memori 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 utama atau kumpulan baca.
Klik Query insights.
Klik Edit Settings.
Di jendela Edit query insights settings, pilih Enable advanced query insights features for AlloyDB > Active Query Analysis.
Klik Simpan perubahan.
Di jendela Changes require restart, klik Confirm and restart.
Anda dapat menggunakan bantuan Gemini Cloud Assist untuk membantu memantau dan memecahkan masalah resource AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Memantau dan memecahkan masalah dengan bantuan Gemini.
Melihat kueri aktif
Untuk melihat kueri aktif, lakukan hal berikut:
Buat peran khusus dan tambahkan izin Identity and Access Management (IAM)
databaseinsights.monitoringViewer.Tambahkan peran ini untuk setiap pengguna yang melihat kueri aktif.
Di konsol Google Cloud , buka halaman AlloyDB.
Klik nama cluster untuk membuka halaman Ringkasan.
Pilih tab Query Insights. Dasbor Query Insights menampilkan detail tentang cluster yang dipilih.
Klik tab Active queries view. Tab ini berisi ringkasan kueri aktif yang berjalan bersama dengan 50 transaksi yang berjalan paling lama.
Anda dapat memfilter informasi berdasarkan salah satu hal berikut:
- Database: memfilter pemuatan kueri di database tertentu atau semua database.
- User: memfilter pemuatan kueri dari pengguna database tertentu atau semua pengguna.
- Node ID: hanya ditampilkan untuk instance read pool; memfilter beban kueri pada node instance read pool 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
activedanidle in transactionberdasarkan waktu eksekusi menurun.
Anda dapat melihat daftar lima puluh kueri aktif teratas yang dinormalisasi di dasbor Query Insights.
Kueri aktif yang dinormalisasi akan menghapus data sensitif, dan menampilkan ringkasan. Dua kueri yang identik, kecuali untuk nilai klausa WHERE, memiliki ringkasan yang sama. Misalnya, perhatikan 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 terlama yang berjalan paling lama
Tabel berikut menjelaskan kolom tabel Longest running transactions di dasbor Query Insights:
| 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 User untuk memfilter akan memuat ulang data di halaman.
Untuk menganalisis data statis, nonaktifkan Auto-refresh dan gunakan kolom Filter pada tabel Longest running transactions 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 Query di tabel Longest running transaction.
Untuk menghentikan kueri atau transaksi, selesaikan langkah-langkah berikut:
- Pilih kueri di tabel Longest running transaction.
- Scroll ke kanan ke kolom Action.
- Klik Hentikan koneksi.
Di jendela Terminate connection, klik Confirm.
Halaman akan dimuat ulang setelah memulai penghentian. Jika penghentian gagal, penghentian akan dilakukan secara otomatis dan kueri akan terus muncul dalam daftar Active Query. Jika penghentian berhasil, kueri tidak akan lagi ditampilkan dalam daftar.