Halaman ini menjelaskan cara memantau dan memecahkan masalah kueri yang aktif di database Anda. Memantau kueri ini dapat membantu mengidentifikasi penyebab latensi sistem dan penggunaan CPU yang tinggi.
Di dasbor Query Insights, Anda dapat melihat ringkasan transaksi aktif dan daftar transaksi dengan kueri dan statistik terkait. Transaksi ditampilkan berdasarkan waktu mulai transaksi. Jika ada banyak kueri yang berjalan, hasilnya mungkin dibatasi pada subgrup dari total kueri.
Sebelum memulai
Untuk memantau kueri aktif, Anda dapat menggunakan edisi Cloud SQL Enterprise atau edisi Cloud SQL Enterprise Plus.
Untuk menghentikan sesi atau transaksi yang berjalan lama dalam kueri aktif, Anda harus menggunakan edisi Cloud SQL Enterprise Plus untuk instance Cloud SQL.
Untuk informasi selengkapnya tentang edisi Cloud SQL, lihat Pengantar edisi Cloud SQL.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk melihat kueri aktif, minta administrator untuk memberi Anda peran IAM berikut pada project yang menghosting instance Cloud SQL:
-
Melihat ringkasan aktivitas instance:
Viewer Cloud SQL (
roles/cloudsql.viewer) -
Melihat ringkasan aktivitas database dan transaksi yang berjalan lama:
Database Insights Viewer (
roles/databaseinsights.viewer) -
Menghentikan sesi atau transaksi yang berjalan lama:
- Cloud SQL Editor (
roles/cloudsql.editor) - Database Insights Operations Admin (
roles/databaseinsights.operationsAdmin)
- Cloud SQL Editor (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk melihat kueri aktif. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk melihat kueri aktif:
-
Melihat ringkasan aktivitas database dan transaksi yang berjalan lama:
-
databaseinsights.activeQueries.fetch -
databaseinsights.activitySummary.fetch
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Mengaktifkan kueri aktif
Saat mengaktifkan Query Insights, Anda akan mengaktifkan kueri aktif secara otomatis. Agar dapat menghentikan sesi atau transaksi yang berjalan lama dalam kueri aktif, Anda harus menggunakan Query Insights untuk edisi Cloud SQL Enterprise Plus.
Menonaktifkan kueri aktif
Anda tidak dapat menonaktifkan kueri aktif tanpa menonaktifkan Query Insights. Untuk menonaktifkan kueri aktif dan Query Insights, lihat Menonaktifkan Query Insights.
Melihat kueri aktif
Untuk melihat kueri aktif, selesaikan langkah-langkah berikut:
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
Untuk membuka halaman Ringkasan instance, klik nama instance.
Lakukan salah satu tindakan berikut untuk menampilkan dasbor Query Insights:
- Pilih tab Query Insights.
- Klik Go to Query insights for more in-depth info on queries and performance. Dasbor Query Insight akan terbuka. Halaman ini menampilkan detail tentang instance di bagian atas.
Klik tab Kueri aktif.
Dari sini, Anda dapat mengubah informasi kueri yang muncul di tabel Longest running transactions:
- Database: memfilter pemuatan kueri di database tertentu atau semua database.
- Pengguna: memfilter pemuatan kueri dari akun pengguna tertentu.
Kartu skor ringkasan semua kueri aktif: memberikan ringkasan semua kueri aktif dengan menampilkan total koneksi berdasarkan parameter berikut:
- Distribusi koneksi aktif yang dikategorikan berdasarkan status koneksi.
- Distribusi transaksi aktif berdasarkan status transaksi.
- Distribusi durasi kueri.
- Longest running transactions: memberikan ringkasan 50 kueri yang berjalan teratas (dalam status active) berdasarkan waktu eksekusi menurun. Anda dapat memfilter dan mengurutkan kueri aktif dalam tabel.
Melihat kueri aktif yang dinormalisasi
Anda dapat melihat daftar transaksi yang berjalan lama dengan kueri aktif yang dinormalisasi di dasbor Query Insights. Kueri aktif yang dinormalisasi akan menghapus data sensitif dan menampilkan ringkasan. Ringkasan ini sama untuk berbagai nilai yang digunakan dalam contoh berikut:
Kueri reguler
select * from test_table where id=1;select * from test_table_where id=2;
Ringkasan atau kueri yang dinormalisasi
select * from test_table where id=?;
Kueri yang berjalan di sesi yang berbeda ditampilkan sebagai entri yang berbeda di dasbor.
Melihat transaksi terlama yang berjalan
Tabel Transaksi yang berjalan paling lama di dasbor Query Insights berisi kolom berikut:
| Nama kolom | Deskripsi |
|---|---|
| ID proses | ID unik koneksi. |
| Kueri | Teks kueri SQL. |
| Status transaksi | Status eksekusi transaksi saat ini. Nilai yang diizinkan mencakup: RUNNING, LOCK WAIT, ROLLING BACK, dan COMMITTING. |
| Status thread | Status thread (atau status kueri) menunjukkan status thread aktif saat ini. |
| Waktu mulai transaksi | Stempel waktu saat transaksi memulai eksekusinya. |
| Durasi transaksi | Durasi transaksi aktif saat ini dalam detik. |
| Durasi tunggu transaksi | Durasi tunggu dalam detik pada transaksi aktif saat ini. |
| Durasi status thread | Waktu yang berlalu dalam kueri. |
| Baris transaksi dikunci | Jumlah baris yang dikunci oleh transaksi aktif saat ini. |
| Baris transaksi diubah | Jumlah baris yang diubah oleh transaksi aktif saat ini. |
| Database | Nama database tempat koneksi ini berjalan. |
| Nama pengguna | Nama pengguna yang terhubung ke database. |
| Alamat klien | Alamat IP klien tempat pengguna terhubung ke database. |
| Tindakan | Berisi link untuk menghentikan transaksi. |
Tampilan diperbarui secara otomatis setiap 60 detik.
Anda dapat menggunakan menu vertikal Opsi tampilan konten... untuk memfilter kolom yang ingin ditampilkan.
Menghentikan koneksi
Untuk menghentikan koneksi atau transaksi yang berjalan lama dalam kueri aktif, Anda harus menggunakan edisi Cloud SQL Enterprise Plus dan mengaktifkan Query Insights untuk edisi Cloud SQL Enterprise Plus.
Operasi yang berjalan lama dapat memerlukan waktu lebih lama untuk dihentikan.
Untuk menghentikan kueri atau transaksi, selesaikan langkah-langkah berikut:
- Di tabel Longest running transaction, pilih kueri.
- Di kolom Tindakan, klik Hentikan koneksi.
- Di jendela Terminate connection, klik Confirm.
Permintaan database akan segera ditampilkan, sementara penghentian terjadi di latar belakang.
Halaman akan dimuat ulang setelah memulai penghentian. Jika penghentian gagal, pesan error atau notifikasi tidak akan ditampilkan. Kueri akan terus muncul di daftar Kueri Aktif. Jika penghentian berhasil, kueri tidak akan lagi ditampilkan dalam daftar. Jika penghentian memerlukan rollback, kolom Txn state akan menampilkan status ROLLING BACK, yang berarti penghentian masih berlangsung.