Menggunakan insight kueri untuk meningkatkan performa kueri

Halaman ini menjelaskan cara menggunakan dasbor Insight kueri untuk mendeteksi dan menganalisis masalah performa kueri Anda.

Pengantar

Insight kueri membantu Anda mendeteksi, mendiagnosis, dan mencegah masalah performa kueri untuk database Cloud SQL. Layanan ini mendukung pemantauan intuitif dan menyediakan informasi diagnostik yang membantu Anda melakukan lebih dari sekadar deteksi untuk mengidentifikasi akar penyebab masalah performa.

Dengan insight kueri, Anda dapat memantau performa di tingkat aplikasi dan melacak sumber kueri yang bermasalah di seluruh stack aplikasi berdasarkan model, tampilan, pengontrol, rute, pengguna, dan host. Alat insight kueri dapat diintegrasikan dengan alat pemantauan aplikasi (APM) dan layanan Google Cloud yang sudah ada dengan menggunakan API dan standar terbuka. Dengan cara ini, Anda dapat memantau dan memecahkan masalah kueri dengan menggunakan alat favorit Anda.

Query Insight membantu Anda meningkatkan performa kueri Cloud SQL dengan memandu Anda melalui langkah-langkah berikut:

Membuat kueri insight untuk edisi Cloud SQL Enterprise Plus

Jika menggunakan edisi Cloud SQL Enterprise Plus, Anda dapat mengakses kemampuan tambahan di insight kueri untuk melakukan diagnostik performa kueri lanjutan. Selain kemampuan standar dasbor Query Insights, Query Insights untuk edisi Cloud SQL Enterprise Plus memungkinkan Anda melakukan hal berikut:

  • Merekam dan menganalisis peristiwa tunggu untuk semua kueri yang dieksekusi.
  • Memfilter beban database gabungan menurut dimensi tambahan seperti kueri, tag, jenis peristiwa tunggu, dan lainnya.
  • Merekam rencana kueri untuk semua kueri yang dijalankan.
  • Ambil sampel hingga 200 paket kueri per menit.
  • Merekam teks kueri yang lebih panjang hingga 1 MB.
  • Mendapatkan update metrik yang mendekati real-time (dalam urutan detik).
  • Mempertahankan retensi metrik 30 hari yang lebih lama.
  • Dapatkan rekomendasi indeks dari penasihat indeks.
  • Menghentikan sesi atau transaksi yang berjalan lama dalam kueri aktif.
  • Mengakses pemecahan masalah dengan dukungan AI (Pratinjau).

Tabel berikut membandingkan persyaratan dan kemampuan fungsional insight kueri untuk edisi Cloud SQL Enterprise dengan insight kueri untuk edisi Cloud SQL Enterprise Plus.

Area perbandingan Membuat kueri insight untuk edisi Cloud SQL Enterprise Membuat kueri insight untuk edisi Cloud SQL Enterprise Plus
Versi database yang didukung MySQL 5.7 atau yang lebih baru MySQL 8.0 atau yang lebih baru
Jenis mesin yang didukung Didukung di semua jenis mesin Tidak didukung pada instance yang menggunakan jenis mesin dengan inti bersama
Wilayah yang didukung Lokasi regional Cloud SQL Lokasi regional edisi Cloud SQL Enterprise Plus
Periode retensi data metrik 7 hari 30 hari
Maksimum batas panjang kueri 4.500 byte 1 MB
Maksimum contoh paket kueri 20 200
Analisis peristiwa tunggu Tidak tersedia Tersedia
Rekomendasi penasihat indeks Tidak tersedia Tersedia
Menghentikan sesi atau transaksi yang berjalan lama dalam kueri aktif Tidak tersedia Tersedia
Pemecahan masalah yang dibantu AI (Pratinjau) Tidak tersedia Tersedia

Mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus

Untuk mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, pilih Aktifkan fitur Enterprise Plus saat Anda Mengaktifkan insight kueri pada instance edisi Cloud SQL Enterprise Plus.

Harga

Tidak ada biaya tambahan untuk insight kueri pada instance edisi Cloud SQL Enterprise atau Cloud SQL Enterprise Plus.

Persyaratan penyimpanan

Query Insight untuk edisi Cloud SQL Enterprise tidak menempati ruang penyimpanan apa pun di ruang penyimpanan instance Cloud SQL Anda. Metrik disimpan di Cloud Monitoring. Untuk permintaan API, lihat Harga Cloud Monitoring. Cloud Monitoring memiliki paket yang dapat Anda gunakan tanpa biaya tambahan.

Insight kueri untuk edisi Cloud SQL Enterprise Plus menyimpan data metrik di disk yang sama yang terpasang ke instance Cloud SQL Anda dan mengharuskan Anda mengaktifkan setelan peningkatan penyimpanan otomatis.

Persyaratan penyimpanan untuk data tujuh hari adalah sekitar 45 GB. Selama 30 hari, Anda memerlukan sekitar 180 GB. Insight kueri untuk edisi Cloud SQL Enterprise Plus menggunakan RAM hingga 130 MB. Metrik diharapkan akan tersedia di analisis kueri dalam waktu satu menit setelah penyelesaian kueri. Biaya penyimpanan yang berlaku akan dikenakan.

Batasan penyimpanan metrik

Batasan berikut berlaku untuk insight kueri untuk instance edisi Cloud SQL Enterprise Plus:

  • Jika instance Anda mengalami beban sistem yang berat, saat Anda membuat kueri data metrik di dasbor Query insights, kueri Anda mungkin lambat dimuat atau waktu habis.
  • Jika Anda membuat ulang replika baca, replika baca yang dibuat ulang tidak mempertahankan histori metrik sebelumnya.
  • Jika Anda memulihkan instance dengan cadangan lama, Anda dapat kehilangan metrik antara waktu pencadangan dan waktu Anda memulihkan instance untuk insight kueri untuk edisi Cloud SQL Enterprise Plus. Misalnya, jika Anda memulihkan instance pada 30 April dengan cadangan yang diambil pada 25 April, Anda mungkin kehilangan semua metrik antara 25 April dan 30 April.

Sebelum memulai

Sebelum Anda menggunakan insight kueri, lakukan hal berikut.

  1. Tambahkan peran dan izin yang diperlukan.
  2. Aktifkan Cloud Trace API.
  3. Jika Anda menggunakan Insight kueri untuk edisi Cloud SQL Enterprise Plus, pastikan Aktifkan peningkatan penyimpanan otomatis diaktifkan untuk instance.

Peran dan izin yang diperlukan

Untuk menggunakan insight kueri, Anda perlu memberikan peran yang telah ditetapkan, membuat peran kustom, atau memberikan akun pengguna dengan izin Identity and Access Management yang diperlukan.

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Untuk mendapatkan izin yang Anda perlukan guna mengakses data eksekusi kueri historis di dasbor Insight kueri, minta administrator Anda untuk memberi Anda peran IAM berikut di project yang menghosting instance Cloud SQL:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengakses data eksekusi kueri historis di dasbor Insight kueri. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengakses data eksekusi kueri historis di dasbor Insight kueri:

  • databaseinsights.aggregatedStats.query
  • databaseinsights.timeSeries.query

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Misalnya, di Database Insights, Anda dapat meminta administrator untuk memberi Anda peran bawaan Database Insights Viewer (roles/databaseinsights.viewer). Kemudian, di Cloud SQL, Anda dapat meminta administrator untuk memberi Anda salah satu peran bawaan berikut:

Aktifkan Cloud Trace API

Untuk melihat rencana kueri dan tampilan menyeluruhnya, Google Cloud project Anda harus mengaktifkan Cloud Trace API. Setelan ini memungkinkan project Google Cloud Anda menerima data rekaman aktivitas dari sumber yang diautentikasi tanpa biaya tambahan. Data ini dapat membantu Anda mendeteksi dan mendiagnosis masalah performa di instance Anda.

Untuk mengonfirmasi bahwa Cloud Trace API diaktifkan, ikuti langkah-langkah berikut:

  1. Dari konsol Google Cloud , buka APIs and Services:

    Buka API dan Layanan

  2. Klik Aktifkan API dan Layanan.
  3. Di kotak penelusuran, masukkan Cloud Trace API.
  4. Jika API enabled ditampilkan, berarti API ini sudah diaktifkan dan Anda tidak perlu melakukan apa pun. Jika tidak, klik Enable.

Aktifkan peningkatan penyimpanan otomatis

Jika Anda menggunakan insight kueri untuk edisi Cloud SQL Enterprise Plus, pastikan setelan instance untuk mengaktifkan peningkatan penyimpanan otomatis tetap diaktifkan. Secara default, opsi ini diaktifkan untuk instance Cloud SQL.

Jika sebelumnya Anda menonaktifkan setelan instance ini dan ingin mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, aktifkan kembali peningkatan penyimpanan otomatis terlebih dahulu. Anda tidak dapat menonaktifkan peningkatan penyimpanan otomatis dan mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus.

Mengaktifkan insight kueri

Jika Anda mengaktifkan Query Insight, semua operasi lainnya akan ditangguhkan untuk sementara. Operasi ini meliputi health check, logging, pemantauan, dan operasi instance lainnya.

Konsol

Mengaktifkan insight kueri untuk instance

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Overview instance, klik nama instance.
  3. Di kartu Configuration, klik Edit configuration.
  4. Di bagian Sesuaikan instance Anda, luaskan Insight kueri.
  5. Centang kotak Aktifkan Query Insight.
  6. Opsional: Pilih fitur tambahan untuk instance Anda. Beberapa fitur hanya tersedia untuk edisi Cloud SQL Enterprise Plus.
  7. Fitur Deskripsi Edisi Cloud SQL Enterprise Edisi Cloud SQL Enterprise Plus
    Mengaktifkan fitur Enterprise Plus Centang kotak ini untuk mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus. Insight kueri untuk edisi Cloud SQL Enterprise Plus memungkinkan Anda menghentikan sesi dan transaksi yang berjalan lama dalam kueri aktif, mengaktifkan rekomendasi penasihat indeks untuk membantu Anda mempercepat pemrosesan kueri, dan meningkatkan retensi data metrik hingga 30 hari. Rekomendasi penasihat indeks diaktifkan secara otomatis saat Anda mengaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus. Untuk menonaktifkan rekomendasi penasihat indeks, hapus centang pada kotak ini. Anda harus mencentang kotak ini untuk mengaktifkan rekomendasi penasihat indeks dan pemecahan masalah yang dibantu AI (Pratinjau). Tidak tersedia Tersedia

    Default: Dinonaktifkan
    Pemecahan masalah dengan dukungan AI Centang kotak ini untuk mengaktifkan deteksi anomali performa, analisis akar masalah dan situasi, serta mendapatkan rekomendasi untuk memperbaiki masalah pada kueri dan database Anda. Fitur ini berada dalam Pratinjau, dan Anda dapat mengaktifkan serta mengakses fitur ini hanya menggunakan konsol Google Cloud . Untuk informasi selengkapnya, lihat Mengamati dan memecahkan masalah dengan bantuan AI. Tidak tersedia Tersedia

    Default: Dinonaktifkan
    Simpan alamat IP klien Centang kotak ini untuk mengaktifkan penyimpanan alamat IP klien. Cloud SQL dapat menyimpan alamat IP tempat kueri berasal dan memungkinkan Anda mengelompokkan data tersebut untuk menjalankan metrik padanya. Kueri berasal dari lebih dari satu host. Meninjau grafik kueri dari alamat IP klien dapat membantu mengidentifikasi sumber masalah. Tersedia

    Default: Dinonaktifkan
    Tersedia

    Default: Dinonaktifkan
    Simpan tag aplikasi Centang kotak ini untuk mengaktifkan penyimpanan tag aplikasi. Menyimpan tag aplikasi membantu Anda menentukan API dan rute pengontrol tampilan model (MVC) yang membuat permintaan dan mengelompokkan data untuk menjalankan metrik pada tag tersebut. Opsi ini mengharuskan Anda mengomentari kueri dengan sekumpulan tag tertentu menggunakan library instrumentasi otomatis pemetaan relasional objek (ORM) open source sqlcommenter. Informasi ini membantu insight kueri mengidentifikasi sumber masalah dan MVC tempat masalah tersebut berasal. Jalur aplikasi membantu Anda dalam pemantauan aplikasi. Tersedia

    Default: Nonaktif
    Tersedia

    Default: Nonaktif
    Sesuaikan panjang kueri Centang kotak ini untuk menyesuaikan batas panjang string kueri. Panjang kueri yang lebih tinggi lebih berguna untuk kueri analitis, tetapi juga memerlukan lebih banyak memori. Setiap string kueri yang melebihi batas yang ditentukan akan dipangkas dalam tampilan.

    Jika batas panjang kueri diubah, Anda harus memulai ulang instance. Anda masih dapat menambahkan tag ke kueri yang melebihi batas panjang.
    Anda dapat menetapkan batas dalam byte dari 256 byte hingga 4500 byte.

    Default: 1024.
    Anda dapat menentukan batas dalam byte dari 1 hingga 1048576.

    Default: 1024 byte (1 KB).

    Menetapkan frekuensi sampling maksimum Centang kotak ini untuk menetapkan frekuensi sampling maksimum. Frekuensi sampling adalah jumlah sampel paket kueri yang dijalankan yang diambil per menit di semua database pada instance. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat meningkatkan overhead performa. Untuk menonaktifkan pengambilan sampel, tetapkan nilai ke 0. Anda mengubah nilai ini menjadi angka dari 0 hingga 20.

    Default: 5.
    Anda dapat meningkatkan maksimum menjadi 200 untuk memberikan lebih banyak titik data.

    Default: 5.
  8. Klik Simpan.

Mengaktifkan insight kueri untuk beberapa instance

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik menu Tindakan Lainnya di baris mana pun.
  3. Pilih Aktifkan Query Insight.
  4. Dalam dialog, centang kotak Aktifkan Query Insight untuk beberapa instance.
  5. Klik Enable.
  6. Pada dialog berikutnya, pilih instance yang Query Insight-nya ingin Anda aktifkan.
  7. Klik Aktifkan Query Insight.

gcloud

Untuk mengaktifkan Query Insight untuk instance Cloud SQL menggunakan gcloud, jalankan gcloud sql instances patch dengan flag --insights-config-query-insights-enabled sebagai berikut setelah mengganti INSTANCE_ID dengan ID instance.

Jika Anda mengaktifkan insight kueri untuk instance edisi Cloud SQL Enterprise Plus, maka Anda mengaktifkan rekomendasi penasihat indeks secara otomatis.

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

Selain itu, gunakan satu atau beberapa flag opsional berikut:

  • --insights-config-record-client-address

    Menyimpan alamat IP klien tempat kueri berasal dan membantu Anda mengelompokkan data tersebut untuk menjalankan metrik pada kueri tersebut. Kueri berasal dari lebih dari satu host. Meninjau grafik kueri dari alamat IP klien dapat membantu mengidentifikasi sumber masalah.

  • --insights-config-record-application-tags

    Menyimpan tag aplikasi yang membantu Anda menentukan API dan rute pengontrol tampilan model (MVC) yang membuat permintaan dan mengelompokkan data untuk menjalankan metrik pada tag tersebut. Opsi ini mengharuskan Anda mengomentari kueri dengan sekumpulan tag tertentu. Anda dapat melakukannya dengan menggunakan library instrumentasi otomatis pemetaan relasional objek (ORM) open source sqlcommenter. Informasi ini membantu Query Insight mengidentifikasi sumber masalah dan MVC tempat masalah tersebut berasal. Jalur aplikasi membantu Anda dalam pemantauan aplikasi.

  • --insights-config-query-string-length

    Menetapkan batas panjang kueri default. Panjang kueri yang lebih tinggi lebih berguna untuk kueri analitis, tetapi juga memerlukan lebih banyak memori. Jika panjang kueri diubah, Anda harus memulai ulang instance. Anda masih dapat menambahkan tag ke kueri yang melebihi batas panjang. Untuk edisi Cloud SQL Enterprise, Anda dapat menentukan nilai dalam byte dari 256 hingga 4500. Panjang kueri default adalah 1024 byte. Untuk edisi Cloud SQL Enterprise Plus, Anda dapat menentukan batas dalam byte dari 1 hingga 1048576. Nilai defaultnya adalah 1024 byte (1 KB).

  • --query_plans_per_minute

    Secara default, maksimum 5 sampel paket kueri yang dijalankan diambil per menit di semua database pada instance. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat menambah overhead performa. Untuk menonaktifkan pengambilan sampel, tetapkan nilai ini ke 0. Untuk edisi Cloud SQL Enterprise, Anda dapat mengubah nilai dari 0 hingga 20. Untuk edisi Cloud SQL Enterprise Plus, Anda dapat meningkatkan maksimum hingga 200 untuk menyediakan lebih banyak titik data.

Ganti kode berikut:

  • INSIGHTS_CONFIG_QUERY_STRING_LENGTH: Panjang string kueri yang akan disimpan dalam byte.
  • API_TIER_STRING: Konfigurasi instance kustom yang akan digunakan untuk instance.
  • REGION: Region untuk instance.
gcloud sql instances patch INSTANCE_ID \
--insights-config-query-insights-enabled \
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \
--query_plans_per_minute=QUERY_PLANS_PER_MINUTE \
--insights-config-record-application-tags \
--insights-config-record-client-address \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

Guna mengaktifkan Query Insight untuk instance Cloud SQL dengan menggunakan REST API, panggil metode instances.patch dengan setelan insightsConfig.

Jika Anda mengaktifkan insight kueri untuk instance edisi Cloud SQL Enterprise Plus, maka Anda mengaktifkan rekomendasi penasihat indeks secara otomatis.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • INSTANCE_ID: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings" : {
     "insightsConfig" : {
       "queryInsightsEnabled" : true,
       "recordClientAddress" : true,
       "recordApplicationTags" : true,
       "queryStringLength" : 1024,
       "queryPlansPerMinute" : 20,
   }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-03-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Agar dapat menggunakan Terraform untuk mengaktifkan Query Insight untuk instance Cloud SQL, tetapkan flag query_insights_enabled ke true.

Jika Anda mengaktifkan insight kueri untuk instance edisi Cloud SQL Enterprise Plus, maka Anda mengaktifkan rekomendasi penasihat indeks secara otomatis.

Selain itu, Anda dapat menggunakan satu atau beberapa flag opsional berikut:

  • query_string_length: untuk edisi Cloud SQL Enterprise, Anda dapat menentukan nilai dalam byte dari 256 hingga 4500. Panjang kueri default adalah 1024 byte. Untuk edisi Cloud SQL Enterprise Plus, Anda dapat menentukan batas dalam byte dari 1 hingga 1048576. Nilai defaultnya adalah 1024 byte (1 KB).
  • record_application_tags: tetapkan nilai ke true jika Anda ingin merekam tag aplikasi dari kueri.
  • record_client_address: tetapkan nilai ke true jika Anda ingin mencatat alamat IP klien. Defaultnya adalah false.
  • query_plans_per_minute: untuk edisi Cloud SQL Enterprise, Anda dapat menetapkan nilai dari 0 hingga 20. Defaultnya adalah 5. Untuk edisi Cloud SQL Enterprise Plus, Anda dapat meningkatkan maksimum hingga 200 untuk menyediakan lebih banyak titik data.

Berikut contohnya:

  resource "google_sql_database_instance" "INSTANCE_NAME" {
  name                = "INSTANCE_NAME"
  database_version    = "MYSQL_VERSION"
  region              = "REGION"
  root_password       = "PASSWORD"
  deletion_protection = false # set to true to prevent destruction of the resource
  settings {
    tier = "DB_TIER"
    insights_config {
      query_insights_enabled  = true
      query_string_length     = 2048 # Optional
      record_application_tags = true # Optional
      record_client_address   = true # Optional
      query_plans_per_minute  = 10 # Optional
    }
  }
  }
  

Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. Tetapkan project default Google Cloud tempat Anda ingin menerapkan konfigurasi Terraform.

    Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.

Menyiapkan direktori

Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
    terraform init

    Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi -upgrade:

    terraform init -upgrade

Menerapkan perubahan

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

Metrik diharapkan akan tersedia di insight kueri dalam hitungan menit setelah penyelesaian kueri. Tinjau kebijakan retensi data Cloud Monitoring.

Trace Query Insight disimpan di Cloud Trace. Tinjau kebijakan retensi data Cloud Trace.

Melihat dasbor Query Insight

Dasbor Query Insight menampilkan pemuatan kueri berdasarkan faktor yang Anda pilih. Pemuatan kueri adalah pengukuran total pekerjaan untuk semua kueri dalam instance dalam rentang waktu yang dipilih. Dasbor ini menyediakan serangkaian filter yang membantu Anda melihat pemuatan kueri.

Untuk membuka dasbor Insight kueri, ikuti langkah-langkah berikut:

  1. Untuk membuka halaman Ringkasan instance, klik nama instance.
  2. Di menu navigasi Cloud SQL, klik Analisis kueri, atau klik Buka Analisis kueri untuk mengetahui info lebih mendalam tentang kueri dan performa di halaman Ringkasan instance.
  3. Dasbor Query insights akan terbuka. Bergantung pada apakah Anda menggunakan Query Insight untuk edisi Cloud SQL Enterprise atau Query Insight untuk edisi Cloud SQL Enterprise Plus, dasbor Query Insight menampilkan informasi berikut tentang instance Anda:

Edisi Cloud SQL Enterprise Plus

Menampilkan dasbor Query Insight untuk edisi Enterprise Plus
          dengan menu untuk memfilter menurut Database, Pengguna, dan Alamat klien.
          Anda juga dapat memfilter menurut rentang waktu 1 jam, 6 jam, 1 hari, 30 hari, atau memilih rentang waktu kustom. Grafik ini menunjukkan
          muatan database menurut waktu eksekusi dalam milidetik
          untuk semua kueri selama periode satu jam.
  • Semua kueri: Menampilkan muatan database untuk semua kueri selama rentang waktu yang dipilih. Setiap kueri diberi kode warna secara terpisah. Untuk melihat titik waktu untuk kueri tertentu, tahan kursor di atas diagram untuk kueri tersebut.
  • Database: Memfilter pemuatan kueri di database tertentu atau semua database.
  • Pengguna: Memfilter pemuatan kueri dari akun pengguna tertentu.
  • Alamat klien: Memfilter pemuatan kueri dari alamat IP tertentu.
  • Rentang waktu: Memfilter pemuatan kueri berdasarkan rentang waktu, seperti 1 jam, 6 jam, 1 hari, 7 hari, 30 hari, atau rentang kustom.
  • Jenis peristiwa tunggu: Memfilter beban kueri menurut jenis peristiwa tunggu CPU dan Kunci.
  • Kueri, Jenis peristiwa tunggu, Database, Pengguna, Tag, dan Alamat klien: Urutkan menurut dimensi teratas yang paling berkontribusi pada beban database dalam diagram. Lihat Memfilter muatan database.

Edisi Cloud SQL Enterprise

Menampilkan dasbor Query Insight, dengan menu drop-down
         untuk database, pengguna, dan alamat. Di sebelah kanan menu drop-down,
         terdapat filter untuk menyetel rentang waktu. Selain itu,
         grafik menunjukkan muatan database untuk kueri teratas. Di bagian bawah
         grafik, terdapat kotak pilihan untuk kapasitas CPU, CPU dan waktu
         tunggu CPU, Waktu tunggu IO, dan Waktu tunggu Kunci, serta tab masing-masing untuk kueri dan tag.
  • Database: Memfilter pemuatan kueri di database tertentu atau semua database.
  • Pengguna: Memfilter pemuatan kueri dari akun pengguna tertentu.
  • Alamat klien: Memfilter pemuatan kueri dari alamat IP tertentu.
  • Rentang waktu: Memfilter pemuatan kueri berdasarkan rentang waktu, seperti 1 jam, 6 jam, 1 hari, 7 hari, 30 hari, atau rentang kustom.
  • Grafik pemuatan database: Menampilkan grafik pemuatan kueri, berdasarkan data yang difilter.
  • Kapasitas CPU, Waktu tunggu CPU dan CPU, Waktu tunggu IO, dan Waktu tunggu kunci: Memfilter muatan berdasarkan opsi yang Anda pilih. Lihat Melihat pemuatan database untuk kueri teratas untuk mengetahui detail tentang setiap filter ini.
  • Kueri dan Tag: Memfilter beban kueri menurut kueri yang dipilih atau tag kueri SQL yang dipilih. Lihat Memfilter muatan database.

Melihat muatan database untuk semua kueri

Pemuatan kueri database adalah ukuran pekerjaan (dalam detik CPU) yang dilakukan oleh kueri yang dieksekusi di database yang dipilih dari waktu ke waktu. Setiap kueri yang berjalan menggunakan atau menunggu resource CPU, resource IO, atau resource kunci. Pemuatan kueri database adalah rasio jumlah waktu yang dibutuhkan oleh semua kueri yang diselesaikan dalam jangka waktu tertentu dibandingkan dengan waktu aktual.

Dasbor Query Insights tingkat atas menampilkan grafik Pemuatan database — semua kueri teratas. Menu drop-down di dasbor memungkinkan Anda memfilter grafik untuk database, pengguna, atau alamat klien tertentu.

Edisi Cloud SQL Enterprise Plus

Menampilkan grafik muatan database dengan muatan untuk kapasitas CPU, waktu tunggu CPU dan
         CPU, Waktu tunggu IO, dan Waktu tunggu Kunci.

Edisi Cloud SQL Enterprise

Menampilkan grafik muatan database dengan muatan untuk kapasitas CPU, waktu tunggu CPU dan
         CPU, Waktu tunggu IO, dan Waktu tunggu Kunci.

Garis berwarna dalam grafik menunjukkan pemuatan kueri, yang dibagi menjadi beberapa kategori:

  • Kapasitas CPU: Jumlah CPU yang tersedia pada instance.
  • CPU dan Waktu Tunggu CPU: Rasio waktu yang dibutuhkan oleh kueri dalam status aktif terhadap waktu aktual. Waktu tunggu IO dan Kunci tidak memblokir kueri yang dalam status aktif. Metrik ini dapat berarti bahwa kueri menggunakan CPU atau menunggu penjadwal Linux untuk menjadwalkan proses server yang menjalankan kueri saat proses lain sedang menggunakan CPU.
  • Waktu Tunggu IO: Rasio waktu yang dibutuhkan oleh kueri yang menunggu IO dibandingkan waktu aktual. Waktu Tunggu IO mencakup Waktu Tunggu IO Baca dan Waktu Tunggu IO Tulis. Jika Anda ingin perincian informasi untuk waktu tunggu IO, Anda dapat melihatnya di Cloud Monitoring. Lihat Metrik Cloud SQL untuk mengetahui informasi selengkapnya.
  • Waktu Tunggu Kunci: Rasio waktu yang dibutuhkan oleh kueri yang menunggu kunci dibandingkan waktu aktual. Waktu Tunggu ini mencakup Waktu tunggu Kunci, LwLock, dan Buffer Pin Lock. Untuk melihat perincian informasi terkait waktu tunggu kunci, gunakan Cloud Monitoring. Lihat Metrik Cloud SQL untuk mengetahui informasi selengkapnya.

Garis berwarna dalam grafik menunjukkan pemuatan per database menurut waktu eksekusi. Tinjau grafik tersebut dan gunakan opsi pemfilteran untuk mempelajari pertanyaan-pertanyaan ini:

  • Apakah pemuatan kuerinya tinggi? Apakah grafiknya melonjak atau meningkat seiring waktu? Jika Anda tidak melihat muatan yang tinggi, berarti masalahnya tidak ada pada kueri.
  • Berapa lama muatannya telah tinggi? Apakah baru sekarang atau sudah tinggi sejak lama? Gunakan pemilih rentang untuk memilih berbagai jangka waktu guna mengetahui berapa lama masalah berlangsung. Perbesar untuk melihat periode waktu saat lonjakan muatan kueri diamati. Perkecil untuk melihat rentang waktu hingga satu minggu.
  • Apa yang menyebabkan muatannya tinggi? Anda dapat memilih opsi untuk memeriksa kapasitas CPU, Waktu tunggu CPU dan CPU, Waktu tunggu Kunci, atau Waktu tunggu IO. Grafik untuk setiap opsi ini memiliki warna yang berbeda, sehingga Anda dapat menemukan opsi yang memiliki muatan tertinggi. Garis biru tua pada grafik menunjukkan kapasitas CPU maksimum sistem. Hal ini memungkinkan Anda membandingkan beban kueri dengan kapasitas sistem CPU maksimum. Perbandingan ini membantu Anda menentukan apakah instance kehabisan resource CPU.
  • Database mana yang mengalami pemuatan? Pilih berbagai database dari menu drop-down Database untuk menemukan database dengan beban tertinggi.
  • Apakah pengguna atau alamat IP tertentu menyebabkan pemuatan yang lebih tinggi? Pilih pengguna dan alamat yang berbeda dari menu drop-down untuk mengidentifikasi manakah yang menyebabkan pemuatan yang lebih tinggi.

Memfilter muatan database

Anda dapat memfilter pemuatan database berdasarkan kueri atau tag. Jika Anda menggunakan insight kueri untuk edisi Cloud SQL Enterprise Plus, Anda dapat menyesuaikan diagram beban database untuk mengelompokkan data yang ditampilkan menggunakan salah satu dimensi berikut:

  • Semua kueri

  • Jenis peristiwa tunggu

  • Database

  • Pengguna

  • Tag

  • Alamat klien

Untuk menyesuaikan diagram pemuatan database, pilih dimensi dari drop-down Database Load by execution time.

Melihat kontributor utama beban database

Untuk melihat kontributor teratas terhadap pemuatan database, Anda dapat menggunakan tabel Dimensi teratas menurut pemuatan database. Tabel Dimensi teratas menurut beban database menampilkan kontributor teratas untuk jangka waktu dan dimensi yang Anda pilih di drop-down diagram Beban Database menurut waktu eksekusi. Anda dapat mengubah jangka waktu atau dimensi untuk melihat kontributor teratas untuk dimensi atau jangka waktu yang berbeda.

Di tabel Dimensi teratas menurut pemuatan data, Anda dapat memilih tab berikut.

Tab Deskripsi
Kueri Tabel ini menampilkan kueri yang dinormalisasi teratas berdasarkan total waktu eksekusi. Untuk setiap kueri, data yang ditampilkan dalam kolom tercantum sebagai berikut:
  • Waktu eksekusi rata-rata (md): waktu rata-rata kueri untuk dieksekusi.
  • Total waktu eksekusi (md): total waktu eksekusi yang diperlukan oleh kueri tertentu.
  • Rata-rata baris yang ditampilkan: jumlah rata-rata baris yang diambil untuk kueri.
  • Waktu panggilan: berapa kali kueri dipanggil oleh aplikasi.
  • %pemuatan menurut SELECTED_DIMENSION: diagram garis persentase menggambarkan cara dimensi yang dipilih didistribusikan untuk kueri tertentu.
Jenis peristiwa tunggu Tabel menampilkan daftar jenis peristiwa tunggu teratas yang terjadi selama periode waktu yang dipilih. Tabel ini hanya tersedia untuk insight kueri untuk edisi Cloud SQL Enterprise Plus.
  • Waktu rata-rata yang dihabiskan untuk menunggu (md): waktu rata-rata yang dihabiskan kueri dalam jenis peristiwa tunggu tertentu.
  • Total waktu yang dihabiskan dalam menunggu (md): total waktu eksekusi kueri yang dihabiskan dalam jenis peristiwa menunggu tertentu.
  • Jumlah jenis peristiwa tunggu: jumlah frekuensi jenis peristiwa tunggu tertentu terjadi dalam jangka waktu yang dipilih.
  • %muatan menurut SELECTED_DIMENSION: diagram garis persentase menggambarkan cara distribusi dimensi yang dipilih untuk diagram muatan database untuk jenis peristiwa tunggu tertentu.
Database Tabel menampilkan daftar database teratas yang berkontribusi pada pemuatan selama jangka waktu yang dipilih di semua kueri yang dijalankan.
  • Waktu rata-rata yang dihabiskan dalam database (md): waktu rata-rata yang dihabiskan kueri dalam database tertentu.
  • Total waktu yang dihabiskan dalam database (md): total waktu eksekusi yang dihabiskan kueri dalam database tertentu.
  • %pemuatan menurut SELECTED_DIMENSION: diagram garis persentase menggambarkan cara distribusi dimensi yang dipilih untuk diagram pemuatan database di seluruh database tertentu.
Pengguna Tabel ini menampilkan daftar pengguna teratas untuk jangka waktu yang dipilih di semua kueri yang dijalankan.
  • Waktu rata-rata yang dihabiskan pengguna (md): waktu rata-rata yang dihabiskan kueri untuk pengguna tertentu.
  • Total waktu yang dihabiskan pengguna (md).: total waktu eksekusi yang dihabiskan kueri untuk pengguna tertentu.
  • %load by SELECTED_DIMENSION: diagram garis persentase menggambarkan cara distribusi dimensi yang dipilih untuk diagram beban database di seluruh pengguna tertentu.
Tag Untuk mengetahui informasi tentang tag, Memfilter menurut tag kueri.
Alamat klien Tabel ini menampilkan daftar pengguna teratas untuk jangka waktu yang dipilih di semua kueri yang dijalankan.
  • Total waktu yang dihabiskan di alamat klien (md): total waktu eksekusi yang dihabiskan kueri untuk klien tertentu.
  • %pemuatan menurut SELECTED_DIMENSION: diagram garis persentase menggambarkan cara dimensi yang dipilih untuk diagram pemuatan database didistribusikan di seluruh klien tertentu.

Memfilter berdasarkan kueri

Tabel Kueri teratas memberikan ringkasan kueri yang menyebabkan pemuatan kueri terbanyak. Tabel ini menampilkan semua kueri yang dinormalkan untuk rentang waktu dan opsi yang dipilih di dasbor Query Insight. Fungsi ini mengurutkan kueri berdasarkan total waktu eksekusi selama rentang waktu yang Anda pilih.

Edisi Cloud SQL Enterprise Plus

Untuk mengurutkan tabel, pilih judul kolom.

Menampilkan grafik muatan database dengan muatan untuk kueri, dengan
         filter yang dipilih untuk kapasitas CPU, waktu tunggu CPU dan
         CPU, Waktu Tunggu IO, dan Waktu Tunggu Kunci.

Edisi Cloud SQL Enterprise

Untuk mengurutkan tabel, pilih judul kolom atau properti dari Filter kueri.

Menampilkan grafik muatan database dengan muatan untuk kueri, dengan
         filter yang dipilih untuk kapasitas CPU, waktu tunggu CPU dan
         CPU, Waktu Tunggu IO, dan Waktu Tunggu Kunci.

Tabel menampilkan properti berikut:

  • Query: string kueri yang dinormalisasi. Secara default, insight kueri hanya menampilkan 1024 karakter dalam string kueri. Kueri berlabel UTILITY COMMAND biasanya menyertakan perintah BEGIN, COMMIT, dan EXPLAIN atau perintah wrapper.
  • Database: database tempat kueri dijalankan.
  • Rekomendasi: rekomendasi yang disarankan, seperti Buat indeks, untuk meningkatkan performa kueri.
  • Load by total time/Load by CPU/Load by IO wait/Load by lock wait: Opsi yang dapat Anda gunakan untuk memfilter kueri tertentu guna menemukan muatan terbesar.
  • % pemuatan menurut Kueri: Persentase pemuatan menurut kueri individual.
  • Analisis latensi: Jika Anda mengaktifkan Pemecahan masalah dengan bantuan AI (Pratinjau) untuk instance ini, Anda dapat mengklik link ini untuk memecahkan masalah kueri lambat.
  • Waktu eksekusi rata-rata (md): waktu rata-rata kueri untuk dieksekusi.
  • Waktu panggilan: berapa kali aplikasi memanggil kueri.
  • Rata-rata baris yang ditampilkan: jumlah rata-rata baris yang ditampilkan untuk kueri.
  • Rata-rata baris yang dipindai: jumlah rata-rata baris yang dipindai untuk kueri.

Query Insight hanya menyimpan dan menampilkan kueri yang dinormalkan.

Secara default, insight kueri tidak mengumpulkan alamat IP atau informasi tag. Anda dapat mengaktifkan insight kueri untuk mengumpulkan informasi ini dan, jika diperlukan, menonaktifkan pengumpulan.

Trace paket kueri tidak mengumpulkan atau menyimpan nilai konstanta apa pun dan menghapus informasi PII yang mungkin ditampilkan konstanta tersebut.

Query Insight menampilkan kueri yang dinormalkan, yaitu, ? menggantikan nilai konstanta literal. Pada contoh berikut, konstanta nama dihapus dan ? menggantikannya.

  UPDATE
    "demo_customer"
  SET
    "customer_id" = ?::uuid,
    "name" = ?,
    "address" = ?,
    "rating" = ?,
    "balance" = ?,
    "current_city" = ?,
    "current_location" = ?
  WHERE
    "demo_customer"."id" = ?
  

Memfilter berdasarkan tag kueri

Untuk memecahkan masalah aplikasi, Anda harus menambahkan tag ke kueri SQL terlebih dahulu. Tag pemuatan kueri memberikan rincian pemuatan kueri untuk tag yang dipilih dari waktu ke waktu.

Query Insight menyediakan pemantauan yang berfokus pada aplikasi untuk mendiagnosis masalah performa untuk aplikasi yang di-build menggunakan ORM. Jika Anda bertanggung jawab atas seluruh stack aplikasi, Query Insight menyediakan pemantauan kueri dari tampilan aplikasi. Pemberian tag kueri membantu Anda menemukan masalah pada konstruksi tingkat yang lebih tinggi, seperti dengan logika bisnis atau microservice.

Anda dapat memberi tag pada kueri berdasarkan logika bisnis, misalnya, tag pembayaran, inventaris, analisis bisnis, atau pengiriman. Kemudian, Anda dapat menemukan beban kueri yang dibuat oleh berbagai logika bisnis. Misalnya, Anda mungkin mengamati peristiwa tak terduga, seperti lonjakan tag analisis bisnis pada pukul 13.00 atau pertumbuhan yang tidak terduga untuk tren layanan pembayaran selama seminggu sebelumnya.

Untuk menghitung Pemuatan database untuk tag, Query Insight menggunakan jumlah waktu yang dibutuhkan oleh setiap kueri yang menggunakan tag yang Anda pilih. Alat ini menghitung waktu penyelesaian pada batas menit menggunakan waktu dinding.

Di dasbor Query Insight, pilih Tag untuk melihat tabel tag. Tabel mengurutkan tag berdasarkan total pemuatannya berdasarkan total waktu.

Menampilkan dasbor Query Insight, dengan pemuatan tag dan daftar tag.

Anda dapat mengurutkan tabel dengan memilih properti dari Filter tags, atau dengan mengklik judul kolom. Tabel menampilkan properti berikut:

  • Tindakan, Pengontrol, Framework, Rute, Aplikasi, Driver DB: Setiap properti yang Anda tambahkan ke kueri akan muncul sebagai kolom. Setidaknya salah satu dari properti ini harus ditambahkan jika Anda ingin memfilter menurut tag.
  • Load by total time/Load by CPU/Load by IO wait/Load by lock wait: Opsi untuk memfilter kueri tertentu guna menemukan muatan terbesar untuk setiap opsi.
  • Waktu eksekusi rata-rata (md): Waktu rata-rata untuk menjalankan kueri.
  • Rata-rata baris yang ditampilkan: Jumlah rata-rata baris yang ditampilkan untuk kueri.
  • Rata-rata baris yang dipindai: Jumlah rata-rata baris yang dipindai untuk kueri.
  • Waktu panggilan: Berapa kali aplikasi memanggil kueri.
  • Database: Database tempat kueri dijalankan.

Melihat detail kueri untuk kueri atau tag tertentu

Untuk menentukan apakah kueri atau tag tertentu adalah akar penyebab masalah, lakukan hal berikut dari tab Kueri atau tab Tag:

  1. Untuk mengurutkan daftar dalam urutan menurun, klik header Muat menurut total waktu.
  2. Klik kueri atau tag di bagian atas daftar. Server tersebut memiliki muatan tertinggi dan memerlukan waktu lebih lama daripada yang lain.

Halaman Detail kueri akan terbuka dan menampilkan detail kueri atau tag yang dipilih.

Memeriksa pemuatan kueri tertentu

Halaman Detail kueri untuk kueri yang dipilih akan muncul sebagai berikut:

Menampilkan grafik muatan dan latensi database untuk
         kueri tertentu.

Grafik Pemuatan database — kueri spesifik menunjukkan ukuran pekerjaan (dalam detik CPU) yang telah dilakukan kueri yang dinormalkan dalam kueri yang dipilih dari waktu ke waktu. Untuk menghitung muatan, metode ini menggunakan jumlah waktu yang dibutuhkan oleh kueri yang dinormalisasi dan diselesaikan pada batas menit hingga waktu dinding. Di bagian atas tabel, 1024 karakter pertama dari kueri yang dinormalisasi, dengan literal yang dihapus karena alasan agregasi dan PII, akan ditampilkan.

Menampilkan grafik muatan database dengan muatan untuk kueri tertentu, dengan
         filter dipilih untuk kapasitas CPU, waktu tunggu CPU dan CPU, waktu tunggu IO, dan waktu tunggu
         Kunci.

Seperti grafik kueri total, Anda dapat memfilter muatan untuk kueri tertentu berdasarkan Database, User, dan Client address. Muatan kueri dibagi menjadi Kapasitas CPU, Waktu tunggu CPU dan CPU, Waktu tunggu IO, dan Waktu tunggu Kunci.

Memeriksa pemuatan kueri yang diberi tag tertentu

Dasbor untuk tag yang dipilih akan muncul sebagai berikut. Misalnya, jika semua kueri dari pembayaran microservice diberi tag sebagai payment, Anda dapat melihat jumlah pemuatan kueri yang sedang trending dengan melihat tag payment.

Menampilkan grafik latensi dan pemuatan database di halaman untuk
         tag tertentu.

Grafik Pemuatan database — tag spesifik menunjukkan ukuran kerja (dalam detik CPU) yang dilakukan kueri yang cocok dengan tag yang dipilih di database yang Anda pilih dari waktu ke waktu. Seperti grafik kueri total, Anda dapat memfilter pemuatan untuk tag tertentu menurut Database, Pengguna, dan Alamat klien ini.

Memeriksa operasi dalam contoh paket kueri

Paket kueri mengambil sampel kueri Anda dan menguraikannya menjadi operasi individual. Argumen ini menjelaskan dan menganalisis setiap operasi dalam kueri.

MySQL 5.7 menyediakan estimasi rencana kueri dengan tampilan EXPLAIN, sedangkan MySQL 8.0 dan versi terbaru menyediakan paket kueri yang dijalankan dengan tampilan EXPLAIN ANALYZE. Perkiraan rencana kueri memberikan perkiraan waktu eksekusi kueri, sedangkan rencana kueri yang dieksekusi memberikan informasi real-time dari setiap langkah eksekusi kueri tertentu.

Paket kueri di MySQL 5.7 didukung untuk kueri berikut yang didukung oleh pernyataan EXPLAIN:

  • Untuk tabel tunggal: INSERT, SELECT, UPDATE, dan DELETE.
  • Untuk beberapa tabel: SELECT, UPDATE, dan DELETE.

Anda dapat membuat paket kueri di MySQL 8.0 dan yang lebih baru untuk semua kueri yang didukung oleh EXPLAIN ANALYZE. Alat ini menunjukkan tempat MySQL menghabiskan waktu untuk kueri SELECT Anda untuk tabel tunggal dan beberapa tabel. Cloud SQL tidak mendukung pembuatan rencana kueri Bahasa Manipulasi Data (DML) multi-tabel karena kueri ini tidak didukung oleh EXPLAIN ANALYZE.

Contoh paket kueri memberikan tampilan EXPLAIN ANALYZE untuk contoh paket kueri yang terkait dengan kueri yang dinormalkan. Ini adalah rencana kueri yang dijalankan yang memberikan perincian waktu aktif yang digunakan oleh setiap operasi dalam rencana kueri.

Grafik Contoh paket kueri menampilkan semua paket kueri yang berjalan pada waktu tertentu dan jumlah waktu yang diperlukan untuk menjalankan setiap rencana. Anda dapat mengubah frekuensi pengambilan sampel paket kueri per menit. Lihat Mengaktifkan Insight Kueri.

Grafik untuk contoh rencana kueri, dengan waktu saat paket
         dijalankan di bagian bawah grafik (sumbu x) dan jumlah detik
         yang dijalankan di sebelah kanan (sumbu y).

Secara default, panel di sebelah kanan menampilkan detail contoh paket kueri yang memerlukan waktu paling lama, seperti yang terlihat pada grafik Contoh paket kueri. Untuk melihat detail contoh paket kueri lainnya, klik lingkaran yang relevan pada grafik. Detail yang diperluas menampilkan model dari semua operasi di paket kueri.

Setiap operasi menunjukkan latensi, baris yang ditampilkan, dan biaya operasi. Saat memilih operasi, Anda dapat melihat detail lebih lanjut, seperti blok hit bersama, jenis skema, loop, dan baris rencana.

Paket kueri menunjukkan latensi dan biaya untuk setiap operasi yang
         dijalankan untuk kueri tersebut.

Coba sederhanakan masalahnya dengan melihat pertanyaan-pertanyaan berikut:

  1. Berapa konsumsi resource?
  2. Bagaimana kaitannya dengan kueri lain?
  3. Apakah konsumsi berubah dari waktu ke waktu?

Memeriksa rekaman aktivitas yang dihasilkan oleh contoh kueri

Selain melihat paket kueri contoh, Anda dapat menggunakan insight kueri untuk melihat rekaman aktivitas aplikasi menyeluruh dalam konteks untuk kueri contoh. Rekaman aktivitas ini dapat membantu Anda mengidentifikasi sumber kueri yang bermasalah dengan menampilkan aktivitas database untuk permintaan tertentu. Selain itu, entri log yang dikirim aplikasi ke Cloud Logging selama permintaan ditautkan ke trace, yang membantu Anda melakukan penyelidikan.

Untuk melihat rekaman aktivitas dalam konteks, lakukan hal berikut:

  1. Di layar Sample Query, klik tab End-to-end Trace. Tab ini menampilkan diagram Gantt yang menjelaskan rentang, yang merupakan rekaman operasi individual, untuk rekaman aktivitas yang dihasilkan oleh kueri.
  2. Untuk melihat detail selengkapnya tentang setiap rentang, seperti atribut dan metadata, pilih rentang.

Anda juga dapat melihat rekaman aktivitas di halaman Trace Explorer. Untuk melakukannya, klik Lihat di Cloud Trace. Untuk mengetahui detail tentang cara menggunakan halaman Trace Explorer untuk menjelajahi data rekaman aktivitas, lihat Menemukan dan menjelajahi rekaman aktivitas.

Memeriksa latensi

Latensi adalah waktu yang dibutuhkan oleh kueri yang dinormalkan untuk menyelesaikan proses dalam waktu aktual. Anda menggunakan grafik Latensi untuk memeriksa latensi pada kueri atau tag. Dasbor latensi menampilkan latensi persentil ke-50, ke-95, dan ke-99 untuk menemukan perilaku pencilan.

Gambar berikut menampilkan grafik pemuatan database pada persentil ke-50 untuk kueri tertentu dengan filter yang dipilih untuk kapasitas CPU, waktu tunggu CPU dan CPU, waktu tunggu IO, dan waktu tunggu Kunci.

Menampilkan grafik latensi kueri untuk kueri tertentu
         dengan filter yang dipilih untuk kapasitas CPU, Waktu tunggu CPU dan CPU,
         Waktu tunggu IO, dan Waktu tunggu kunci.

Latensi kueri paralel diukur dalam waktu aktual meskipun muatan kueri bisa lebih tinggi untuk kueri tersebut karena beberapa inti digunakan untuk menjalankan bagian dari kueri.

Coba sederhanakan masalahnya dengan melihat pertanyaan-pertanyaan berikut:

  • Apa yang menyebabkan muatannya tinggi? Pilih opsi untuk melihat kapasitas CPU, waktu tunggu CPU dan CPU, waktu tunggu I/O, atau waktu tunggu kunci.
  • Berapa lama muatannya telah tinggi? Apakah sekarang hanya tingginya? Atau sudah tinggi sejak lama? Ubah rentang waktu untuk menemukan tanggal dan waktu saat muatannya mulai berperforma buruk.
  • Apakah ada lonjakan latensi? Ubah periode waktu untuk mempelajari latensi historis untuk kueri yang dinormalisasi.

Menambahkan tag ke kueri SQL

Pemberian tag pada kueri SQL menyederhanakan pemecahan masalah aplikasi. Anda dapat menggunakan sqlcommenter untuk menambahkan tag ke kueri SQL secara otomatis atau manual.

Menggunakan sqlcommenter dengan ORM

Saat menggunakan ORM, bukan menulis kueri SQL secara langsung, Anda mungkin tidak menemukan kode aplikasi yang menyebabkan tantangan performa. Anda mungkin juga mengalami kesulitan dalam menganalisis pengaruh kode aplikasi terhadap performa kueri. Untuk mengatasi masalah ini, Query Insights menyediakan library open source yang disebut sqlcommenter. Library ini berguna bagi developer dan administrator yang menggunakan alat ORM untuk mendeteksi kode aplikasi yang menyebabkan masalah performa.

Jika Anda menggunakan ORM dan sqlcommenter secara bersamaan, tag akan dibuat secara otomatis. Anda tidak perlu menambahkan atau mengubah kode dalam aplikasi.

Anda dapat menginstal sqlcommenter di server aplikasi. Dengan library instrumentasi, informasi aplikasi yang terkait dengan framework MVC Anda dapat disebarkan ke database bersama dengan kueri sebagai komentar SQL. Database akan mengambil tag ini dan mulai mencatat serta menggabungkan statistik berdasarkan tag, yang bersifat ortogonal terhadap statistik yang digabungkan oleh kueri yang dinormalisasi. Query Insight menampilkan tag agar Anda mengetahui aplikasi mana yang menyebabkan pemuatan kueri dan dapat menemukan kode aplikasi yang menyebabkan masalah performa.

Ketika Anda memeriksa hasil dalam log database SQL, hasil tersebut akan muncul sebagai berikut:

    SELECT * from USERS /action='run+this',
    controller='foo%3',
    traceparent='00-01',
    tracestate='rojo%2'/
  

Tag yang didukung mencakup nama, rute, framework, dan tindakan pengontrol.

Kumpulan alat ORM di sqlcommenter didukung untuk bahasa pemrograman berikut:

Python
  • Django
  • psycopg2
  • Sqlalchemy
  • Flask
Java
  • Hibernasi
  • Musim semi
Ruby
  • Rails
Node.js
  • Knex.js
  • Sequelize.js
  • Express.js
PHP
  • Laravel

Untuk mengetahui informasi selengkapnya tentang sqlcommenter dan cara menggunakannya dalam framework ORM, lihat dokumentasi sqlcommenter.

Menggunakan sqlcommenter untuk menambahkan tag

Jika tidak menggunakan ORM, Anda harus menambahkan tag atau komentar sqlcommenter secara manual dalam format komentar SQL yang benar ke kueri SQL. Anda juga harus meningkatkan setiap pernyataan SQL dengan komentar yang berisi pasangan nilai kunci serial. Gunakan minimal salah satu kunci berikut:

  • action=''
  • controller=''
  • framework=''
  • route=''
  • application=''
  • db driver=''

Query Insight akan menghapus semua kunci lainnya.

Menonaktifkan insight kueri

Konsol

Untuk menonaktifkan Query Insight untuk instance Cloud SQL menggunakan konsol Google Cloud , ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Overview instance, klik nama instance.
  3. Di kartu Configuration, klik Edit configuration.
  4. Di bagian Opsi konfigurasi, luaskan Query Insight.
  5. Hapus centang pada kotak Aktifkan Query Insight.
  6. Klik Simpan.

gcloud

Untuk menonaktifkan Query Insight untuk instance Cloud SQL menggunakan gcloud, jalankan gcloud sql instances patch dengan flag --no-insights-config-query-insights-enabled sebagai berikut, setelah mengganti INSTANCE_ID dengan ID instance.

gcloud sql instances patch INSTANCE_ID \
  --no-insights-config-query-insights-enabled

REST

Untuk menonaktifkan Query Insight untuk instance Cloud SQL menggunakan REST API, panggil metode instances.patch dengan queryInsightsEnabled yang ditetapkan ke false seperti berikut.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: Project ID.
  • instance-id: ID instance.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Menonaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus

Untuk menonaktifkan insight kueri untuk edisi Cloud SQL Enterprise Plus, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Edit.
  4. Di bagian Sesuaikan instance Anda, luaskan Insight kueri.
  5. Hapus centang pada kotak Aktifkan fitur Enterprise Plus.
  6. Klik Simpan.

Langkah berikutnya