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 Insight, 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 terbatas pada subset 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 mengetahui informasi selengkapnya tentang edisi Cloud SQL, lihat Pengantar edisi Cloud SQL.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna 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:
Viewer Database Insights (
roles/databaseinsights.viewer) -
Menghentikan sesi atau transaksi yang berjalan lama:
-
Editor Cloud SQL (
roles/cloudsql.editor) -
Admin Operasi Database Insights (
roles/databaseinsights.operationsAdmin)
-
Editor Cloud SQL (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditetapkan 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
Untuk mengaktifkan kueri aktif untuk instance edisi Cloud SQL Enterprise, lakukan hal berikut:
-
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insights.
- Pastikan Enable Query insights diaktifkan.
- Pilih Active query analysis.
- Klik Save.
Untuk mengaktifkan kueri aktif untuk instance edisi Cloud SQL Enterprise Plus, lakukan hal berikut:
-
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insights.
- Pastikan Enable Query insights diaktifkan.
- Pilih Enable Enterprise Plus features.
- Pilih Active query analysis.
- Klik Save.
Agar dapat menghentikan sesi atau transaksi yang berjalan lama dalam kueri aktif, Anda harus menggunakan Query Insight untuk edisi Cloud SQL Enterprise Plus.
Menonaktifkan kueri aktif
Untuk menonaktifkan kueri aktif pada instance edisi Cloud SQL Enterprise atau edisi Cloud SQL Enterprise Plus, lakukan hal berikut:
-
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insights.
- Hapus centang pada kotak Active query analysis.
- Klik Save.
Melihat kueri aktif
Untuk melihat kueri aktif, selesaikan langkah-langkah berikut:
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
Untuk membuka halaman Overview instance, klik nama instance.
Lakukan salah satu hal 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 insights akan terbuka. Halaman ini menampilkan detail tentang instance di bagian atas.
Klik tab Active queries.
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.
Summary scorecard of all active queries: 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 teratas yang berjalan (dalam status active dan idle in transaction) berdasarkan waktu eksekusi menurun. Anda dapat memfilter dan mengurutkan kueri aktif dalam tabel.
Melihat kueri aktif yang dinormalisasi
Anda dapat melihat daftar transaksi teratas yang berjalan lama dengan kueri aktif yang dinormalisasi di dasbor Query insights. Kueri aktif yang dinormalisasi akan menghapus data sensitif dan menampilkan ringkasan. Ringkasannya sama untuk nilai yang berbeda 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 dalam sesi yang berbeda akan ditampilkan sebagai entri yang berbeda di dasbor.
Melihat transaksi teratas yang berjalan paling lama
Tabel Longest running transactions di dasbor Query insights berisi kolom berikut:
| Nama kolom | Deskripsi |
|---|---|
| ID proses | ID unik koneksi atau ID thread. |
| Kueri | Teks kueri SQL. |
| Status | Status koneksi. |
| Durasi sesi | Durasi sesi terakhir yang berjalan. |
| Durasi transaksi | Durasi transaksi aktif yang berjalan. |
| Durasi kueri | Durasi kueri terakhir yang berjalan dalam transaksi tersebut. |
| Jenis peristiwa tunggu | Jenis peristiwa tunggu dari peristiwa tunggu yang terjadi. |
| Peristiwa tunggu | Peristiwa tunggu yang terjadi. |
| Database | Nama database tempat koneksi ini berjalan. |
| Nama aplikasi | Nama aplikasi tempat koneksi ini berjalan. |
| Nama pengguna | Nama pengguna yang terhubung ke database. |
| Alamat klien | Alamat IP spesifik klien yang mengirim kueri. |
| Tindakan | Berisi link untuk menghentikan transaksi. |
Tampilan dimuat ulang setiap 60 detik secara otomatis.
Anda dapat menggunakan Opsi tampilan konten... menu vertikal untuk memfilter kolom yang ingin ditampilkan.
Menghentikan proses
Untuk menghentikan proses atau transaksi yang berjalan lama dalam kueri aktif, Anda harus menggunakan edisi Cloud SQL Enterprise Plus dan mengaktifkan Active query analysis serta Query Insight untuk edisi Cloud SQL Enterprise Plus.
Operasi yang berjalan lama mungkin memerlukan waktu lebih lama untuk dihentikan.
Untuk menghentikan kueri atau transaksi, selesaikan langkah-langkah berikut:
- Di tabel Longest running transaction, pilih kueri.
- Di kolom Action, klik Terminate connection.
- Di jendela Terminate connection, klik Confirm.
Jika sistem berhasil menghentikan kueri atau transaksi, pesan keberhasilan akan muncul. Sistem juga melakukan rollback jika diperlukan.
Kueri aktif yang diblokir
Jika kueri aktif tertentu diblokir atau berjalan jauh lebih lama dari yang diharapkan, kueri aktif tersebut dapat memblokir kueri dependen lainnya.
Cloud SQL memberi Anda opsi untuk menghentikan kueri aktif tertentu yang berjalan lama atau diblokir.
Mengaktifkan analisis kueri aktif yang diblokir
Secara default, Google Cloud konsol tidak menampilkan kueri aktif mana yang diblokir.
Untuk menganalisis kueri aktif yang diblokir, persyaratan berikut berlaku:
- Anda harus menggunakan instance edisi Cloud SQL Enterprise Plus.
- Anda harus mengaktifkan kueri aktif di instance.
Untuk mengaktifkan analisis kueri aktif yang diblokir, lakukan hal berikut:
Konsol
-
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Edit.
- Luaskan bagian Query insights.
- Pilih Enable Enterprise Plus features dan Active query analysis. Kedua setelan ini diperlukan.
- Pilih Blocked query analysis.
- Klik Save.
Mengidentifikasi dan menghentikan kueri aktif yang diblokir
Langkah-langkah berikut menunjukkan cara mengidentifikasi dan menghentikan kueri aktif tertentu yang mungkin memblokir kueri lain.
Konsol
-
Di Google Cloud konsol, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview instance, klik nama instance.
- Di menu navigasi SQL, klik Query insights.
- Klik tab Active queries.
Jika Anda belum menjalankan kueri aktif, buka Cloud SQL Studio dan jalankan kueri yang ingin Anda selidiki.
- Buka bagian Longest running transactions. Anda
dapat melihat hingga 50 kueri aktif yang berjalan paling lama di setiap kategori.
Setiap entri yang ditampilkan mencakup informasi berikut:
- ID Proses: ID proses kueri. Klik luaskan
untuk melihat entri. Anda dapat melihat salah satu dari dua ikon:
- Ikon jam pasir: Ikon ini menunjukkan bahwa proses sedang menunggu kueri lain selesai. Jika ada angka di samping ikon, angka tersebut menunjukkan jumlah kueri dependen yang menunggu proses ini selesai.
- Ikon simbol blokir: Ikon ini menunjukkan bahwa proses tidak dapat diselesaikan dan mungkin memblokir kueri lain.
- Jenis kueri: Jenis kueri yang berjalan, seperti
SELECTatauUPDATE. - Status: Status kueri aktif, seperti
ACTIVE. - Session duration (seconds): Durasi sesi saat ini (dalam detik).
- Transaction duration (seconds): Durasi transaksi aktif saat ini (dalam detik).
- Query duration (seconds): Durasi kueri aktif saat ini (dalam detik).
- Jenis peristiwa tunggu: Jenis peristiwa tunggu yang saat ini terjadi selama eksekusi kueri, seperti Timeout atau Lock.
- Wait event: Peristiwa tunggu yang saat ini terjadi selama eksekusi kueri.
- Action: Tindakan yang dapat dilakukan, seperti Terminate connection.
Klik untuk meluaskan ID proses yang ingin Anda selidiki. Anda dapat meluaskan proses yang mendasarinya hingga kedalaman tiga tingkat di pohon investigasi.
- ID Proses: ID proses kueri. Klik luaskan
untuk melihat entri. Anda dapat melihat salah satu dari dua ikon:
- Identifikasi kueri tertentu yang diblokir, lalu klik Terminate connection. Setelah menghentikan koneksi, Anda dapat membuka Cloud SQL Studio untuk menjalankan kueri aktif lagi.