Meningkatkan performa kueri menggunakan fitur insight kueri lanjutan untuk AlloyDB

Untuk mendeteksi dan menganalisis masalah performa kueri dalam waktu hampir real-time di seluruh instance utama dan kumpulan baca, Anda dapat menggunakan fitur insight kueri lanjutan untuk AlloyDB untuk PostgreSQL. Untuk mengetahui ringkasan kemampuan ini, lihat Ringkasan fitur insight kueri lanjutan untuk AlloyDB.

Untuk mempelajari cara menggunakan Query Insights standar, lihat Meningkatkan performa kueri menggunakan Query Insights.

Anda dapat menggunakan Gemini Cloud Assist untuk membantu memantau dan memecahkan masalah resource AlloyDB. Untuk mengetahui informasi selengkapnya, lihat Memantau dan memecahkan masalah dengan bantuan Gemini.

Sebelum memulai

Untuk mengakses dasbor Query Insights, aktifkan akses ke AlloyDB untuk PostgreSQL di project Google Cloud Anda.

Peran yang diperlukan

Untuk menggunakan fitur insight kueri lanjutan untuk AlloyDB, Anda memerlukan izin untuk melakukan hal berikut:

  • Untuk mengakses fitur insight kueri lanjutan untuk AlloyDB, Anda memerlukan izin untuk mengakses dasbor insight kueri AlloyDB.
  • Untuk mengedit setelan fitur insight kueri lanjutan untuk AlloyDB, Anda memerlukan izin untuk mengupdate instance AlloyDB.

Untuk mendapatkan izin ini, minta administrator untuk memberi Anda salah satu peran berikut:

  • Pelihat dasar (roles/viewer)
  • Database insights viewer (roles/databaseinsights.viewer)

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

Mengaktifkan fitur insight kueri lanjutan untuk AlloyDB

Untuk mengaktifkan konfigurasi Query Insights lanjutan untuk instance AlloyDB, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Klik Aktifkan atau Edit setelan.

  5. Di tab Edit query insights settings, centang kotak Enable advanced query insights features for AlloyDB.

    Hal ini memerlukan perubahan konfigurasi berikut secara default:

    • Centang kotak Wait event analysis dan Active query analysis.
    • Meningkatkan panjang kueri dari 4500 B menjadi 100.000 B.
  6. Simpan perubahan. Tindakan ini akan memulai ulang instance AlloyDB untuk PostgreSQL Anda.

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled

Ganti kode berikut:

  • INSTANCE: ID instance yang akan diupdate.
  • CLUSTER: ID cluster instance.
  • PROJECT: ID project cluster.
  • REGION: region cluster—misalnya, us-central1.

Flag --observability-config-enabled memungkinkan pengumpulan dan analisis data pada instance AlloyDB untuk memantau performa dan kondisinya. Jika Anda ingin menonaktifkan Query Insights lanjutan, gunakan --no-observability-config-enabled.

Terraform

Agar dapat menggunakan Terraform untuk mengaktifkan Query Insights lanjutan di instance AlloyDB, tetapkan kolom enabled ke true di blok observability_config.

Berikut contohnya:

  observability_config {
    enabled = true
  ...
  }
  

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST v1

Contoh ini mengaktifkan insight kueri lanjutan di instance AlloyDB Anda. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat Metode: projects.locations.clusters.instances.patch. Untuk mengetahui informasi tentang setelan query insights lanjutan, lihat Mengedit setelan query insights lanjutan.

Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

  • CLUSTER_ID: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.
  • PROJECT_ID: ID project tempat Anda ingin menempatkan cluster.
  • LOCATION_ID: ID region cluster.
  • INSTANCE_ID: nama instance utama yang ingin Anda buat.

Untuk mengaktifkan konfigurasi instance, gunakan permintaan PATCH berikut:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID}?updateMask=observabilityConfig.enabled

Parameter kueri updateMask=observabilityConfig.enabled memberi tahu API untuk memperbarui kolom enabled dalam blok observabilityConfig.

Isi JSON permintaan terlihat seperti berikut:

{
 "observabilityConfig": {
   "enabled" : true
 }
}

Setelah Query Insights lanjutan diaktifkan, Anda dapat mengedit setelan Query Insights lanjutan.

Mengedit setelan fitur lanjutan

Untuk mengedit konfigurasi Query Insights lanjutan untuk instance AlloyDB, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Klik Edit settings, lalu ubah salah satu setelan berikut:

    • Analisis peristiwa tunggu Analisis peristiwa tunggu dapat membantu Anda mengidentifikasi dan menyelesaikan masalah performa di database Anda. Peristiwa tunggu adalah komponen yang menyebabkan penundaan dalam memproses operasi terkait kueri.
    • Analisis kueri aktif Melacak kueri yang berjalan secara aktif.
    • Menyimpan komentar kueri Pelajari konteks kueri dengan melihat komentar yang terkait dengan kueri apa pun yang Anda selidiki, sebagai bagian dari panjang kueri. Tidak perlu memori tambahan. Jika komentar Anda berisi informasi sensitif, perhatikan akses pengguna.
    • Aktifkan index advisor Menampilkan rekomendasi pembuatan indeks di halaman query insights cluster.
    • Di kolom Pilih frekuensi aturan dijalankan, Anda dapat menentukan frekuensi update untuk rekomendasi.
    • Simpan alamat IP klien Aktifkan untuk melacak alamat IP klien dan menganalisis data tersebut.
    • Simpan tag aplikasi Aktifkan untuk mempelajari API dan rute pengontrol tampilan model yang membuat permintaan, dan mengelompokkan data tersebut untuk menjalankan metrik terhadapnya.
    • Pengambilan sampel rencana kueri Rencana kueri memvisualisasikan operasi yang digunakan untuk menyelesaikan sampel kueri. Frekuensi sampling menentukan jumlah sampel kueri yang dapat diambil per menit di seluruh database Anda. Frekuensi yang lebih tinggi memerlukan lebih banyak memori.
    • Di kolom Query lengths, Anda dapat mengubah batas default panjang kueri, dari 256 byte hingga 100 KB. Panjang kueri yang lebih tinggi memerlukan lebih banyak memori. Jika panjang kueri diubah, instance harus dimulai ulang.
  5. Simpan perubahan.

gcloud

gcloud alpha alloydb instances update INSTANCE \
--cluster=CLUSTER \
--project=PROJECT \
--region=REGION \
--observability-config-enabled \
--observability-config-preserve-comments \
--observability-config-track-wait-events \
--observability-config-max-query-string-length=QUERY_LENGTH \
--observability-config-record-application-tags \
--observability-config-query-plans-per-minute=QUERY_PLANS \
--observability-config-track-active-queries \
--observability-config-track-client-address \
--observability-config-assistive-experiences-enabled

Ganti kode berikut:

  • INSTANCE: ID instance yang akan diupdate.
  • CLUSTER: ID cluster instance.
  • PROJECT: ID project cluster.
  • REGION: region cluster—misalnya, us-central1.
  • QUERY_LENGTH: panjang kueri yang berkisar antara 1024 hingga 100.000 byte. Panjang kueri default adalah 10240 byte. 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.
  • QUERY_PLANS: jumlah rencana kueri yang akan dikonfigurasi per menit. Secara default, maksimum 20 sampel rencana kueri yang dijalankan diambil per menit di semua database pada instance. Ubah nilai ini menjadi angka dari 1 hingga 200. Untuk menonaktifkan pengambilan sampel, masukkan 0. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat berdampak negatif pada performa.

Gunakan flag kemampuan observasi opsional berikut jika diperlukan:

  • --observability-config-enabled: memungkinkan pengumpulan dan analisis data pada instance AlloyDB untuk memantau performa dan kondisi instance tersebut. Jika Anda ingin menonaktifkan Query Insights lanjutan, gunakan --no-observability-config-enabled.
  • --observability-config-track-active-queries: mengaktifkan pelacakan kueri aktif. Jika Anda ingin menonaktifkan fitur ini, gunakan --no-observability-config-track-active-queries.
  • --observability-config-track-client-address: memungkinkan pelacakan alamat klien. Jika Anda ingin menonaktifkan pelacakan alamat klien, gunakan --no-observability-config-track-client-address.
  • --observability-config-assistive-experiences-enabled: memungkinkan pengalaman bantuan mengumpulkan telemetri yang ditingkatkan untuk pemantauan dan pemecahan masalah. Jika Anda ingin menonaktifkan pengalaman bantuan, gunakan --no-observability-config-assistive-experiences-enabled.
  • --observability-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. Jika Anda tidak ingin menyimpan tag aplikasi, gunakan --no-observability-config-record-application-tags.
  • --observability-config-preserve-comments: menyimpan komentar dalam string kueri yang dicatat oleh Query Insights. Jika Anda tidak ingin menyimpan komentar, gunakan --no-observability-config-preserve-comments.
  • --observability-config-track-wait-events: memungkinkan pelacakan peristiwa tunggu selama eksekusi kueri. Jika Anda tidak ingin melacak peristiwa tunggu, gunakan --no-observability-config-track-wait-events.
  • --observability-config-query-plans-per-minute=QUERY_PLANS: jumlah rencana kueri yang akan dijadikan sampel per menit. Secara default, maksimum 20 sampel rencana kueri yang dijalankan diambil per menit di semua database pada instance. Ubah nilai ini menjadi angka dari 1 hingga 200. Untuk menonaktifkan pengambilan sampel, masukkan 0. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat berdampak negatif pada performa.
  • --observability-config-max-query-string-length=QUERY_LENGTH: panjang string kueri dalam byte yang akan disimpan. Nilai defaultnya adalah 10.240 byte. Nilai apa pun dari 1024 hingga 100000 diizinkan. Jika panjang kueri diubah, Anda harus memulai ulang instance.

Terraform

Untuk menggunakan Terraform guna mengonfigurasi Query Insights lanjutan di instance AlloyDB, gunakan resource google_alloydb_instance.

Berikut adalah contohnya:

  observability_config {
    enabled = ENABLED_VALUE
    preserve_comments = PRESERVE_COMMENTS_VALUE
    track_wait_events = TRACK_WAIT_EVENTS_VALUE
    max_query_string_length = MAX_QUERY_STRING_LENGTH_VALUE
    record_application_tags = RECORD_APPLICATION_TAGS_VALUE
    query_plans_per_minute = QUERY_PLANS_PER_MINUTE_VALUE
    track_active_queries = TRACK_ACTIVE_QUERIES_VALUE
    track_client_address = TRACK_CLIENT_ADDRESS_VALUE
    assistive_experiences_enabled = ASSISTIVE_EXPERIENCES_ENABLED_VALUE
  }
  

Ganti kode berikut:

  • ENABLED_VALUE: status fitur kemampuan observasi untuk instance. Tetapkan ke true saat Anda mengedit setelan dan tentukan flag lain sesuai kebutuhan.
  • PRESERVE_COMMENTS_VALUE: mempertahankan komentar dalam string kueri. Nilai defaultnya adalah false.
  • TRACK_WAIT_EVENTS_VALUE: mencatat peristiwa tunggu selama eksekusi kueri untuk sebuah instance. Nilai defaultnya adalah true.
  • MAX_QUERY_STRING_LENGTH_VALUE: panjang string kueri. Nilai defaultnya adalah 10240. Semua bilangan bulat antara 1024 dan 100000 valid.
  • RECORD_APPLICATION_TAGS_VALUE: mencatat tag aplikasi untuk instance. Nilai defaultnya adalah true.
  • QUERY_PLANS_PER_MINUTE_VALUE: jumlah paket eksekusi kueri yang diambil oleh insight per menit untuk semua kueri yang digabungkan. Nilai defaultnya adalah 20. Bilangan bulat antara 0 dan 200 valid.
  • TRACK_ACTIVE_QUERIES_VALUE: melacak kueri yang sedang berjalan secara aktif. Nilai defaultnya adalah false.
  • TRACK_CLIENT_ADDRESS_VALUE: mencatat alamat IP klien untuk instance. Nilai defaultnya adalah false.
  • ASSISTIVE_EXPERIENCES_ENABLED_VALUE: mengaktifkan pengalaman bantuan. Nilai defaultnya adalah false.

    Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST v1

Contoh ini mengonfigurasi setelan Query Insights lanjutan di instance AlloyDB Anda. Untuk mengetahui daftar lengkap parameter panggilan ini, lihat Metode: projects.locations.clusters.instances.patch.

Untuk mengonfigurasi setelan query insights lanjutan, tetapkan kolom enabled ke true dan ubah kolom opsional lainnya sesuai kebutuhan. Untuk mengetahui daftar lengkap kolom untuk panggilan ini, lihat ObservabilityInstanceConfig.

Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:

  • CLUSTER_ID: ID cluster yang Anda buat. Nama harus diawali dengan huruf kecil dan dapat berisi huruf kecil, angka, dan tanda hubung.
  • PROJECT_ID: ID project tempat Anda ingin menempatkan cluster.
  • LOCATION_ID: ID region cluster.
  • INSTANCE_ID: nama instance utama yang ingin Anda buat.

Untuk mengubah konfigurasi instance, gunakan permintaan PATCH berikut:

PATCH https://alloydb.googleapis.com/v1beta/{instance.name=projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID}?updateMask=observabilityConfig.enabled,observabilityConfig.preserveComments,observabilityConfig.trackWaitEvents,observabilityConfig.maxQueryStringLength,observabilityConfig.recordApplicationTags,observabilityConfig.queryPlansPerMinute,observabilityConfig.trackActiveQueries,observabilityConfig.trackClientAddress,observabilityConfig.assistiveExperiencesEnabled

Isi JSON permintaan yang mengonfigurasi semua kolom Query Insights lanjutan terlihat seperti berikut:

{
 "observabilityConfig": {
   "enabled": true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 20,
   "trackActiveQueries": true,
   "trackClientAddress": true,
   "assistiveExperiencesEnabled": true
 }
}

Mendeteksi dan mendiagnosis masalah performa kueri

Anda dapat menggunakan insight kueri lanjutan untuk mendeteksi dan mendiagnosis masalah performa. Dasbor Query Insights menampilkan pemuatan database, yang merupakan 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. Beban database adalah rasio jumlah waktu yang dibutuhkan oleh semua kueri yang diselesaikan dalam jangka waktu tertentu, dalam waktu nyata yang berlalu.

Melihat ukuran pekerjaan yang dilakukan oleh kueri yang dijalankan

Grafik pemuatan database memberikan ukuran pekerjaan yang dilakukan (dalam detik CPU) oleh semua kueri yang dieksekusi di database Anda, yang dibagi berdasarkan dimensi yang dipilih. Muatan database dibagi menjadi data distribusi yang Anda pilih dari drop-down diagram.

Anda dapat mengelompokkan beban database berdasarkan salah satu dimensi berikut:

  • Kueri
  • Jenis peristiwa tunggu
  • Peristiwa tunggu
  • Database
  • Pengguna

Untuk melihat pekerjaan yang diselesaikan oleh kueri yang dieksekusi di database Anda, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Pilih total waktu eksekusi yang datanya ingin Anda tampilkan, misalnya, 1 atau 6 jam, atau waktu kustom.

  6. Di drop-down Database Load by execution time, pilih dimensi yang ingin Anda selidiki. Bergantung pada dimensi yang Anda pilih, grafik akan menampilkan kontribusi dimensi yang dipilih terhadap keseluruhan beban database. Misalnya, jika Anda memilih dimensi Wait events dari drop-down diagram beban database, perincian semua peristiwa tunggu yang terjadi selama rentang waktu yang dipilih untuk database dan pengguna yang dipilih akan ditampilkan dalam diagram beban database.

    Diagram beban database menampilkan data untuk kesembilan jenis peristiwa tunggu dan peristiwa tunggu yang didukung di PostgreSQL. Bergantung pada jumlah dan jenis peristiwa tunggu, sepuluh peristiwa dan jenis tunggu yang paling berkontribusi akan ditampilkan. Jika ada lebih dari sepuluh peristiwa tunggu, sembilan peristiwa tunggu teratas akan ditampilkan, dan sisanya dikelompokkan ke dalam kategori Lainnya. Pendekatan ini juga berlaku untuk dimensi lain seperti Kueri, Database, dan Pengguna.

Melihat kontributor top untuk pemuatan database

Dengan menggunakan tabel Dimensi teratas berdasarkan pemuatan database, Anda dapat melihat kontributor teratas untuk pemuatan database untuk rentang waktu dan dimensi yang dipilih dalam diagram Pemuatan Database. Bergantung pada dimensi yang Anda pilih di tabel Top dimensions by database load, Anda dapat menemukan nilai teratas untuk periode waktu yang dipilih.

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Pilih total waktu eksekusi yang datanya ingin Anda tampilkan, misalnya, 1 atau 6 jam, atau waktu kustom.

  6. Di tabel Top dimensions by database load, Anda dapat mengklik salah satu opsi berikut:

    Dimensi Deskripsi
    Kueri Tabel ini menampilkan kueri teratas yang dinormalisasi berdasarkan total waktu eksekusi. Untuk setiap kueri, data yang ditampilkan dalam kolom dicantumkan 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.
    • Baris yang Ditampilkan. Jumlah rata-rata baris yang diambil untuk kueri.
    • Waktu Panggilan. Berapa kali kueri dipanggil oleh aplikasi.
    • %load menurut dimensi diagram. Diagram pil menggambarkan bagaimana dimensi diagram didistribusikan untuk kueri tertentu.
    Jenis peristiwa tunggu Tabel ini menampilkan daftar jenis peristiwa tunggu teratas yang terjadi selama rentang waktu yang dipilih.
    • Waktu rata-rata yang dihabiskan dalam status menunggu (md). Waktu rata-rata yang dihabiskan kueri dalam jenis peristiwa tunggu tertentu.
    • Total waktu yang dihabiskan dalam status menunggu (md). Total waktu eksekusi yang dihabiskan kueri dalam jenis peristiwa tunggu tertentu.
    • Jumlah jenis peristiwa tunggu. Frekuensi terjadinya jenis peristiwa tunggu tertentu dalam rentang waktu yang dipilih.
    • %load menurut dimensi diagram. Diagram pil menggambarkan bagaimana dimensi diagram yang dipilih di drop-down diagram muatan database didistribusikan di seluruh jenis peristiwa tunggu tertentu.
    Peristiwa tunggu Tabel ini menampilkan daftar peristiwa tunggu teratas yang terjadi selama rentang waktu yang dipilih.
    • Waktu rata-rata yang dihabiskan dalam penantian (md). Waktu rata-rata yang dihabiskan kueri dalam peristiwa tunggu tertentu.
    • Total waktu yang dihabiskan dalam penantian (md). Total waktu eksekusi yang dihabiskan kueri dalam peristiwa tunggu tertentu.
    • Jumlah peristiwa tunggu. Frekuensi terjadinya peristiwa tunggu tertentu dalam rentang waktu yang dipilih.
    • %load menurut dimensi diagram. Diagram pil menggambarkan bagaimana dimensi diagram yang dipilih di menu drop-down diagram muatan database didistribusikan di seluruh peristiwa tunggu tertentu.
    Database Tabel ini menampilkan daftar database teratas yang berkontribusi pada beban selama rentang 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.
    • %load menurut dimensi diagram. Diagram pil menggambarkan bagaimana dimensi diagram yang dipilih di drop-down diagram pemuatan database didistribusikan di seluruh database tertentu.
    Pengguna Tabel ini menampilkan daftar pengguna teratas untuk rentang waktu yang dipilih di semua kueri yang dijalankan.
    • Waktu rata-rata yang dihabiskan di pengguna (md). Waktu rata-rata yang dihabiskan kueri untuk pengguna tertentu.
    • Total waktu yang dihabiskan di pengguna (md). Total waktu eksekusi yang dihabiskan kueri di pengguna tertentu.
    • %load menurut dimensi diagram. Diagram pil menggambarkan bagaimana dimensi diagram yang dipilih di drop-down diagram beban database didistribusikan di seluruh pengguna tertentu.

Melihat waktu eksekusi kueri

Fitur Query Insights lanjutan untuk AlloyDB menampilkan sepuluh kueri teratas yang berkontribusi pada beban database dalam tabel Top dimensions by database load. Kueri teratas adalah kueri yang memberikan kontribusi muatan database terbanyak untuk rentang waktu yang dipilih. Kueri berikutnya adalah persentase dari waktu eksekusi terlama.

Untuk mempelajari pengaruh berbagai nilai dimensi diagram yang dipilih (kueri, jenis peristiwa tunggu, peristiwa tunggu, database, dan pengguna) terhadap waktu eksekusi parameter di Dimensi teratas berdasarkan beban database, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Lihat % load by chart dimension di tabel Top dimensions by database load untuk mempelajari pengaruh parameter dalam tabel terhadap parameter dalam diagram Database Load.

    Misalnya, saat Anda memilih All Queries di diagram Database Load dan mengklik tab Queries di tabel Top dimensions by database load, % load by Queries akan menampilkan daftar kueri yang paling banyak berkontribusi pada pemuatan database di database yang dipilih selama jangka waktu tertentu.

Melihat detail tentang waktu eksekusi kueri

Anda dapat melihat detail tentang waktu eksekusi kueri di Detail selengkapnya, termasuk dimensi yang Anda pilih dalam diagram dan tabel beban database, definisi setiap peristiwa tunggu, dan data yang dienkapsulasi dalam kategori Lainnya.

More details juga menampilkan detail informasi kompleks yang tidak ditampilkan di tempat lain di layar detail kueri. Informasi ini mencakup definisi setiap peristiwa tunggu.

Untuk melihat detail tentang waktu eksekusi kueri, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Di tabel Dimensi teratas berdasarkan pemuatan database, klik Detail selengkapnya untuk kueri.

Fitur Query Insights lanjutan untuk AlloyDB menampilkan kueri yang dinormalkan ($1, $2, dan seterusnya) untuk menggantikan nilai konstanta literal. Contoh:

UPDATE
  "demo_customer"
SET
  "customer_id" = $1::uuid,
  "name" = $2,
  "address" = $3,
  "rating" = $4,
  "balance" = $5,
  "current_city" = $6,
  "current_location" = $7
WHERE
  "demo_customer"."id" = $8

Nilai konstanta diabaikan sehingga Query Insights lanjutan dapat menggabungkan kueri serupa dan menghapus informasi Identitas Pribadi (PII) yang mungkin ditampilkan konstanta tersebut.

Menentukan beban database untuk kueri yang dinormalisasi

Untuk menampilkan ukuran waktu dan penggunaan resource berdasarkan eksekusi kueri (dalam detik CPU) yang dilakukan kueri yang dinormalkan yang dipilih dalam database yang dipilih dari waktu ke waktu, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Klik Queries di diagram Database Load. Untuk menghitung beban database, diagram Database Load menggunakan jumlah waktu yang dibutuhkan oleh kueri yang dinormalisasi dan diselesaikan dalam batas menit hingga waktu aktual yang berlalu.

Di bagian atas diagram Database Load, 10 KB karakter pertama kueri yang dinormalisasi akan ditampilkan, dengan literal yang dihapus karena alasan agregasi dan informasi identitas pribadi (PII).

Untuk membantu menentukan distribusi waktu yang dihabiskan di setiap status ini, fitur insight kueri lanjutan untuk AlloyDB mendistribusikan beban per kueri yang dinormalisasi ke dalam peristiwa tunggu dan jenis peristiwa tunggu.

Anda dapat mempelajari latensi kueri menggunakan diagram Latency. Latensi adalah waktu yang dibutuhkan oleh kueri yang dinormalkan untuk menyelesaikan proses dalam waktu aktual yang telah berlalu. Latensi kueri paralel diukur dalam waktu aktual yang berlalu meskipun beban database dapat lebih tinggi untuk kueri karena beberapa core digunakan untuk menjalankan bagian dari kueri.

Anda dapat memfilter berdasarkan persentil untuk melihat persentil ke-50, ke-95, atau ke-99 guna mendeteksi kueri yang tidak sesuai dengan waktu eksekusi yang diharapkan. Untuk menganalisis latensi historis kueri yang dinormalisasi, ubah periode waktu.

Menganalisis kueri yang dinormalisasi

Rencana kueri membantu Anda memahami dan menganalisis kueri yang dinormalisasi dengan memberikan perincian berbagai operasi dalam sampel kueri Anda.

Contoh rencana kueri memberikan tampilan EXPLAIN ANALYZE untuk contoh rencana 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.

Untuk melihat contoh rencana kueri, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Pilih total waktu eksekusi yang datanya ingin Anda tampilkan, misalnya, 1 atau 6 jam, atau waktu kustom.

  6. Di tabel Top dimensions by database load, klik kueri.

  7. Di Query plan samples, klik salah satu titik pada diagram untuk melihat rencana kueri untuk kueri tersebut.

Memantau dan memecahkan masalah performa aplikasi menggunakan tag

Query Insights lanjutan menyediakan pemantauan yang berfokus pada aplikasi dan menyederhanakan diagnosis performa aplikasi yang dibangun dengan pemetaan relasional objek (ORM). Pemberian tag kueri membantu Anda menemukan masalah pada konstruksi tingkat yang lebih tinggi, seperti menggunakan logika bisnis, microservice, atau konstruksi lainnya. Anda dapat menggunakan tag dalam aplikasi untuk membantu Anda melakukan hal berikut:

  • Memantau performa database.
  • Menggunakan Sqlcommenter untuk mengidentifikasi masalah performa yang disebabkan oleh kode aplikasi.
  • Menganalisis beban database.
  • Melihat beban per tag.

Untuk mempelajari cara menggunakan tag di Query Insights, lihat Meningkatkan performa kueri menggunakan Query Insights.

Memecahkan masalah aplikasi di lapisan database

Query Insights lanjutan memberikan tampilan trace menyeluruh dalam konteks untuk membantu Anda memahami masalah pada aplikasi di lapisan database untuk permintaan tertentu. Rekaman aktivitas aplikasi menyeluruh dalam konteks membantu Anda menentukan sumber kueri yang bermasalah, misalnya, berdasarkan model, tampilan, pengontrol, dan rute.

Saat Anda mengaktifkan OpenTelemetry, informasi span akan dikirim ke database bersama dengan informasi tag di dalam komentar SQL. Trace dari aplikasi ke Cloud Logging ditautkan dengan trace rencana kueri database untuk mengidentifikasi sumber masalah.

Untuk melihat trace dalam konteks, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik salah satu instance.

  3. Klik Query insights.

  4. Pilih database dan pengguna.

  5. Klik entri mana pun dalam tabel Top dimensions by database load.

  6. Di halaman Query insights details, klik END to END.

Anda juga dapat menggunakan Cloud Trace untuk melihat pelacakan menyeluruh untuk setiap langkah dalam rencana kueri. Untuk mengakses Cloud Trace, pilih Operations > Trace.

Pertanyaan Umum (FAQ)

Bagian ini memberikan jawaban atas pertanyaan umum tentang fitur insight kueri lanjutan.

Mengapa string kueri terpotong?

Secara default, Query Insights lanjutan menampilkan 10 KB dalam string kueri. Anda dapat meningkatkan tampilan menjadi 100 KB.

Mengapa muatan CPU saya berada di atas garis inti maksimum dalam diagram Database Load?

Muatan CPU memperhitungkan waktu proses dan waktu menunggu penjadwal Linux untuk menjadwalkan proses server yang berjalan, sehingga muatan CPU dapat melampaui garis core maksimum.

Dapatkah saya menggunakan metrik Query Insights standar?

Ya. Query Insights standar menghasilkan penghitung yang dapat diakses melalui Stackdriver. Metrik ini tersedia menggunakan Cloud Monitoring API dan UI Metrics Explorer. Untuk mengetahui informasi selengkapnya, lihat metrikGoogle Cloud .

Berapa panjang string kueri maksimum?

Untuk plugin Query Insights standar, panjang string kueri maksimum dibatasi hingga 4,5 KB karakter. Untuk Query Insights lanjutan, panjang string default adalah 10 KB dan panjang maksimum dibatasi hingga 100 KB.

Dapatkah saya menggunakan fitur insight kueri lanjutan dengan cluster sekunder?

Anda tidak dapat mengaktifkan Query Insights lanjutan di cluster dengan instance sekunder. Sebelum membuat instance sekunder di cluster, Anda harus menonaktifkan Query Insights lanjutan di semua instance dalam cluster.

Langkah berikutnya