Memantau kueri aktif

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 Query Insight. Kueri ini ditampilkan berdasarkan waktu mulai transaksi. Jika ada banyak kueri yang berjalan, hasilnya mungkin dibatasi untuk sebagian dari total kueri karena batasan memori yang diterapkan sistem pada pengumpulan data.

Sebelum memulai

Untuk mulai melihat kueri aktif, Anda harus mengaktifkan Insight Kueri yang Ditingkatkan dan mengaktifkan analisis kueri aktif untuk instance Anda sebagai berikut:

  1. Di konsol Google Cloud, buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik instance utama atau kumpulan baca.

  3. Klik Query Insight.

  4. Klik Edit Settings.

  5. Di jendela Edit query insights settings, pilih Enable enhanced query insights > Active Query Analysis.

  6. Klik Save changes.

  7. Di jendela Perubahan memerlukan mulai ulang, klik Konfirmasi dan mulai ulang.

Anda dapat menggunakan bantuan Gemini di Database untuk membantu 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, lakukan hal berikut:

  1. Buat peran kustom dan tambahkan izin Identity and Access Management (IAM) databaseinsights.monitoringViewer.

  2. Tambahkan peran ini untuk setiap pengguna yang melihat kueri aktif.

  3. Di konsol Google Cloud, buka halaman AlloyDB.

    Buka AlloyDB

  4. Klik nama cluster untuk membuka halaman Ringkasan.

  5. Pilih tab Query Insight. Dasbor Query Insight menampilkan detail tentang cluster yang dipilih.

  6. Klik tab Tampilan kueri aktif. Tab ini berisi ringkasan kueri aktif yang berjalan bersama dengan 50 transaksi terlama yang berjalan.

    Anda dapat memfilter informasi menurut 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 pemuatan kueri di node instance kumpulan baca tertentu atau semua node.

    Kartu skor ringkasan dari semua kueri aktif yang dinormalisasi: memberikan ringkasan tentang semua kueri aktif dengan menampilkan total koneksi berdasarkan parameter berikut:

    • Distribusi koneksi aktif yang dikategorikan menurut status koneksi.
    • Distribusi koneksi aktif berdasarkan berbagai jenis peristiwa tunggu.
    • Distribusi durasi transaksi untuk kueri yang tidak dalam status nonaktif.

    Transaksi yang berjalan paling lama: memberikan ringkasan 50 kueri teratas yang sedang berjalan dalam status active dan idle in transaction berdasarkan waktu eksekusi menurun.

Anda dapat melihat daftar lima puluh kueri aktif teratas yang dinormalisasi di dasbor Analisis kueri.

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, 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 normalisasi kueri ini adalah ringkasan berikut:

select * from my_table where id = ?;

Kueri yang berjalan di sesi yang berbeda akan ditampilkan sebagai entri yang berbeda di dasbor.

Melihat transaksi terpanjang yang berjalan

Tabel berikut menjelaskan kolom tabel Transaksi yang berjalan paling lama di dasbor Analisis kueri:

Nama kolom Deskripsi
ID proses ID Proses adalah ID unik koneksi database.
ID Node ID Node adalah ID unik node instance read pool tempat kueri berjalan.
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 tertentu dari klien yang mengirim kueri.
Tindakan Berisi link untuk menghentikan transaksi.

Layar diperbarui setiap 60 detik secara otomatis.

Menggunakan kolom Database dan Pengguna untuk pemfilteran 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 Kueri di tabel Transaksi yang berjalan paling lama.

Untuk menghentikan kueri atau transaksi, selesaikan langkah-langkah berikut:

  1. Pilih kueri di tabel Transaksi yang berjalan paling lama.
  2. Scroll ke kanan ke kolom Action.
  3. Klik Hentikan koneksi.
  4. Di jendela Terminate connection, klik Confirm.

    Halaman akan dimuat ulang setelah memulai penghentian. Jika penghentian gagal, penghentian akan diam dan kueri akan terus muncul di daftar Kueri Aktif. Jika penghentian berhasil, kueri tidak akan lagi ditampilkan dalam daftar.

Langkah selanjutnya