Meningkatkan performa kueri menggunakan fitur insight kueri lanjutan untuk AlloyDB

Halaman ini menjelaskan cara menggunakan fitur insight kueri lanjutan untuk AlloyDB guna mendeteksi dan menganalisis masalah performa kueri secara hampir real time untuk instance kumpulan utama dan kumpulan baca. Untuk ringkasan fitur analisis kueri lanjutan untuk AlloyDB, lihat Ringkasan fitur analisis kueri lanjutan untuk AlloyDB.

Untuk mempelajari cara menggunakan insight kueri standar, lihat Meningkatkan performa kueri menggunakan insight kueri.

Anda dapat menggunakan bantuan Gemini di Database 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 insight kueri, aktifkan akses ke AlloyDB untuk PostgreSQL di project Google Cloud Anda.

Peran yang diperlukan

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

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

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

  • Pelihat dasar (roles/viewer)
  • Penampil insight database (roles/databaseinsights.viewer)

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

Mengaktifkan fitur insight kueri lanjutan untuk AlloyDB

Untuk mengaktifkan konfigurasi analisis kueri 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 instance.

  3. Klik Analisis kueri.

  4. Pilih database dan pengguna.

  5. Klik Aktifkan atau Edit setelan.

  6. Di tab Edit setelan insight kueri, centang kotak Aktifkan fitur insight kueri lanjutan untuk AlloyDB.

    Hal ini memerlukan perubahan konfigurasi berikut secara default:

    • Mengaktifkan kotak centang Analisis peristiwa tunggu dan Analisis kueri aktif.
    • Meningkatkan panjang kueri dari 4.500 B menjadi 100.000 B.
    • Meningkatkan frekuensi sampel maksimum dari 20 menjadi 200 sampel paket kueri per menit.
  7. Simpan perubahan. Tindakan ini akan memulai ulang instance AlloyDB untuk PostgreSQL.

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 di instance AlloyDB untuk memantau performa dan kondisinya. Jika Anda ingin menonaktifkan insight kueri lanjutan, gunakan --no-observability-config-enabled.

Terraform

Untuk menggunakan Terraform guna mengaktifkan insight kueri 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 analisis kueri lanjutan, lihat Mengedit setelan analisis kueri lanjutan.

Sebelum menggunakan data permintaan apa pun, buat 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 insight kueri lanjutan diaktifkan, Anda dapat mengedit setelan insight kueri lanjutan.

Mengedit setelan fitur lanjutan

Untuk mengedit konfigurasi analisis kueri 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 instance.

  3. Klik Analisis kueri.

  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. 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 yang Anda selidiki, sebagai bagian dari durasi kueri. Tidak perlu memori tambahan. Jika komentar Anda berisi informasi sensitif, perhatikan akses pengguna.
    • Aktifkan konsultan indeks Menampilkan rekomendasi pembuatan indeks di halaman insight kueri cluster.
    • Di kolom Select run frequency, Anda dapat menentukan frekuensi pembaruan 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 mana yang membuat permintaan, dan kelompokkan data tersebut untuk menjalankan metrik pada API dan rute tersebut.
    • Pengambilan sampel paket kueri Paket kueri memvisualisasikan operasi yang digunakan untuk menyelesaikan sampel kueri. Frekuensi sampling menentukan jumlah sampel kueri yang dapat diambil per menit di seluruh database Anda. Kecepatan yang lebih tinggi memerlukan lebih banyak memori.
    • Di kolom Panjang kueri, Anda dapat mengubah batas default untuk 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-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

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 paket kueri yang dijalankan diambil per menit di semua database pada instance. Ubah nilai ini menjadi angka dari 1 hingga 20. Untuk menonaktifkan sampling, masukkan 0. Meningkatkan frekuensi sampling kemungkinan akan memberi Anda lebih banyak titik data, tetapi dapat berdampak negatif pada performa.

Gunakan flag visibilitas opsional berikut jika diperlukan:

  • --observability-config-track-active-queries: memungkinkan pelacakan kueri aktif. Jika Anda ingin menonaktifkan fitur ini, gunakan --no-observability-config-track-active-queries.
  • --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 API dan rute tersebut. Opsi ini mengharuskan Anda mengomentari kueri dengan kumpulan tag tertentu. Jika Anda tidak ingin menyimpan tag aplikasi, gunakan --no-observability-config-record-application-tags.
  • --observability-config-preserve-comments: mempertahankan anotasi yang ditambahkan ke kode SQL untuk memberikan informasi tentang kode tanpa memengaruhi eksekusinya. Jika Anda tidak ingin menyimpan anotasi, gunakan --no-observability-config-preserve-comments.
  • --observability-config-track-wait-events: memungkinkan menunggu peristiwa dari setiap jenis peristiwa tunggu. Jika Anda tidak ingin melacak peristiwa tunggu, gunakan --no-observability-config-track-wait-events.

Terraform

Untuk menggunakan Terraform guna mengonfigurasi insight kueri 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
  }
  

Ganti kode berikut:

  • ENABLED_VALUE: status fitur observabilitas untuk instance. Tetapkan ke true saat Anda mengedit setelan dan menentukan 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 instance. Nilai defaultnya adalah true.
  • MAX_QUERY_STRING_LENGTH_VALUE: panjang string kueri. Nilai defaultnya adalah 10240. Semua bilangan bulat antara 1024 dan 100.000 valid.
  • RECORD_APPLICATION_TAGS_VALUE: merekam tag aplikasi untuk instance. Nilai defaultnya adalah true.
  • QUERY_PLANS_PER_MINUTE_VALUE: jumlah rencana eksekusi kueri yang diambil oleh insight per menit untuk semua kueri yang digabungkan. Nilai defaultnya adalah 20. Semua bilangan bulat antara 0 dan 20 valid.
  • TRACK_ACTIVE_QUERIES_VALUE: melacak kueri yang berjalan secara aktif. Nilai defaultnya adalah false.

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

REST v1

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

Untuk mengonfigurasi setelan analisis kueri 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, buat 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}

Isi JSON permintaan yang mengonfigurasi semua kolom insight kueri lanjutan terlihat seperti berikut:

{
 "observabilityConfig": {
   "enabled" : true,
   "preserveComments": true,
   "trackWaitEvents": true,
   "maxQueryStringLength": 5000,
   "recordApplicationTags": true,
   "queryPlansPerMinute": 100,
   "trackActiveQueries": true,
 }
}

Mendeteksi dan mendiagnosis masalah performa kueri

Anda dapat menggunakan insight kueri lanjutan untuk mendeteksi dan mendiagnosis masalah performa. Dasbor analisis kueri menampilkan pemuatan database, yang merupakan ukuran pekerjaan (dalam detik CPU) yang dilakukan 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 dieksekusi

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

Anda dapat mengelompokkan beban database menurut salah satu dimensi berikut:

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

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

  1. Di konsol Google Cloud, buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik instance.

  3. Klik Analisis kueri.

  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 beban database keseluruhan. Misalnya, jika Anda memilih dimensi Peristiwa tunggu dari drop-down diagram pemuatan database, perincian semua peristiwa tunggu yang terjadi selama rentang waktu yang dipilih untuk database dan pengguna yang dipilih akan ditampilkan di diagram pemuatan database.

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

Melihat kontributor utama pemuatan database

Dengan menggunakan tabel Dimensi teratas menurut pemuatan database, Anda dapat melihat kontributor utama pemuatan database untuk rentang waktu yang dipilih dan dimensi yang dipilih di diagram Pemuatan Database. Bergantung pada dimensi yang Anda pilih di tabel Dimensi teratas menurut beban database, 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 instance.

  3. Klik Analisis kueri.

  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 Dimensi teratas menurut pemuatan database, Anda dapat mengklik salah satu dari hal berikut:

    Dimensi Deskripsi
    Kueri Tabel menampilkan kueri normalisasi teratas berdasarkan total waktu eksekusi. Untuk setiap kueri, data yang ditampilkan dalam kolom dicantumkan sebagai berikut:
    • Rata2 Waktu Eksekusi (milidetik). Waktu rata-rata untuk kueri dieksekusi.
    • Total waktu eksekusi (md). Total waktu eksekusi yang diperlukan oleh kueri tertentu.
    • Baris yang Ditampilkan. Jumlah rata-rata baris yang diambil untuk kueri.
    • Times Called. Frekuensi kueri dipanggil oleh aplikasi.
    • %muat menurut dimensi diagram. Diagram pil menggambarkan cara dimensi diagram didistribusikan untuk kueri tertentu.
    Jenis peristiwa tunggu Tabel menampilkan daftar jenis peristiwa tunggu teratas yang terjadi selama rentang waktu yang dipilih.
    • Rata-rata waktu yang dihabiskan dalam waktu tunggu (md). Waktu rata-rata yang dihabiskan kueri dalam jenis peristiwa tunggu tertentu.
    • Total waktu yang dihabiskan dalam waktu tunggu (milidetik). Total waktu eksekusi yang dihabiskan kueri dalam jenis peristiwa tunggu tertentu.
    • Jumlah jenis peristiwa tunggu. Frekuensi jenis peristiwa tunggu tertentu terjadi dalam rentang waktu yang dipilih.
    • %muat menurut dimensi diagram. Diagram pil menggambarkan cara dimensi diagram yang dipilih di drop-down diagram beban database didistribusikan di seluruh jenis peristiwa tunggu tertentu.
    Peristiwa tunggu Tabel menampilkan daftar peristiwa tunggu teratas yang terjadi selama rentang waktu yang dipilih.
    • Rata-rata waktu yang dihabiskan dalam waktu tunggu (md). Waktu rata-rata yang dihabiskan kueri dalam peristiwa tunggu tertentu.
    • Total waktu yang dihabiskan dalam waktu tunggu (milidetik). Total waktu eksekusi yang dihabiskan kueri dalam peristiwa tunggu tertentu.
    • Jumlah peristiwa tunggu. Frekuensi peristiwa tunggu tertentu terjadi dalam rentang waktu yang dipilih.
    • %muat menurut dimensi diagram. Diagram pil menggambarkan cara dimensi diagram yang dipilih di drop-down diagram beban 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.
    • Rata-rata waktu yang dihabiskan di database (md). Waktu rata-rata yang dihabiskan kueri di database tertentu.
    • Total waktu yang dihabiskan di database (mdtk). Total waktu eksekusi yang dihabiskan kueri di database tertentu.
    • %muat menurut dimensi diagram. Diagram pil menggambarkan cara dimensi diagram yang dipilih di drop-down diagram pemuatan database didistribusikan di seluruh database tertentu.
    Pengguna Tabel menampilkan daftar pengguna teratas untuk rentang waktu yang dipilih di semua kueri yang dieksekusi.
    • Rata-rata waktu yang dihabiskan di pengguna (milidetik). Waktu rata-rata yang dihabiskan kueri untuk pengguna tertentu.
    • Total waktu yang dihabiskan di pengguna (milidetik). Total waktu eksekusi yang dihabiskan kueri di pengguna tertentu.
    • %muat menurut dimensi diagram. Diagram pil menggambarkan cara dimensi diagram yang dipilih di drop-down diagram beban database didistribusikan di seluruh pengguna tertentu.

Melihat waktu eksekusi kueri

Fitur analisis kueri lanjutan untuk AlloyDB menampilkan sepuluh kueri teratas yang berkontribusi pada pemuatan database di tabel Dimensi teratas menurut pemuatan database. Kueri teratas adalah kueri yang memiliki kontribusi terbesar pada pemuatan database untuk rentang waktu yang dipilih. Kueri berikutnya adalah persentase dari waktu eksekusi terpanjang.

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

  1. Di konsol Google Cloud, buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik instance.

  3. Klik Analisis kueri.

  4. Pilih database dan pengguna.

  5. Lihat % pemuatan menurut dimensi diagram di tabel Dimensi teratas menurut pemuatan database untuk mempelajari pengaruh parameter dalam tabel terhadap parameter dalam diagram Pemuatan Database.

    Misalnya, saat Anda memilih Semua Kueri pada diagram Pemuatan Database dan mengklik tab Kueri di tabel Dimensi teratas menurut pemuatan database, % pemuatan menurut Kueri akan menampilkan daftar kueri yang berkontribusi paling banyak 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 di diagram dan tabel pemuatan database, definisi setiap peristiwa tunggu, dan data yang dienkapsulasi dalam kategori Lainnya.

Detail selengkapnya 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 instance.

  3. Klik Analisis kueri.

  4. Pilih database dan pengguna.

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

Fitur analisis kueri lanjutan untuk AlloyDB menampilkan kueri yang dinormalisasi ($1, $2, dan seterusnya) untuk mengganti 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 insight kueri lanjutan dapat menggabungkan kueri serupa dan menghapus informasi Informasi Identitas Pribadi (PII) yang mungkin ditampilkan konstanta tersebut.

Menentukan beban database untuk kueri normal

Untuk menampilkan ukuran waktu dan penggunaan resource berdasarkan eksekusi kueri (dalam detik CPU) yang dilakukan kueri yang dinormalisasi dan dipilih di 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 instance.

  3. Klik Analisis kueri.

  4. Pilih database dan pengguna.

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

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

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

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

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

Menganalisis kueri yang dinormalisasi

Paket kueri membantu Anda memahami dan menganalisis kueri yang dinormalisasi dengan memberikan perincian berbagai operasi dalam contoh kueri Anda.

Contoh paket kueri memberikan tampilan EXPLAIN ANALYZE untuk contoh paket kueri yang terkait dengan kueri yang dinormalisasi. 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 instance.

  3. Klik Analisis kueri.

  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 Dimensi teratas menurut pemuatan database, klik kueri.

  7. Di Contoh paket kueri, klik salah satu titik pada diagram untuk melihat paket kueri untuk kueri tersebut.

Memantau dan memecahkan masalah performa aplikasi menggunakan tag

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

  • Memantau performa database.
  • Gunakan Sqlcommenter untuk mengidentifikasi masalah performa yang disebabkan oleh kode aplikasi.
  • Menganalisis beban database.
  • Lihat pemuatan per tag.

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

Memecahkan masalah aplikasi di lapisan database

Insight kueri lanjutan memberikan tampilan rekaman aktivitas 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 paket kueri database untuk mengidentifikasi sumber masalah.

Untuk melihat rekaman aktivitas dalam konteks, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Clusters.

    Buka Cluster

  2. Dari daftar cluster dan instance, klik instance.

  3. Klik Analisis kueri.

  4. Pilih database dan pengguna.

  5. Klik entri apa pun dalam tabel Dimensi teratas menurut beban database.

  6. Di halaman Detail insight kueri, klik END to END.

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

Pertanyaan Umum (FAQ)

Bagian ini memberikan jawaban atas pertanyaan umum (FAQ) tentang fitur analisis kueri lanjutan.

Mengapa string kueri terpotong?

Secara default, analisis kueri lanjutan menampilkan 10 KB dalam string kueri. Anda dapat meningkatkan tampilan hingga 100 KB.

Mengapa beban CPU saya berada di atas garis core maksimum pada diagram Beban Database?

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

Dapatkah saya menggunakan metrik analisis kueri standar?

Ya. Insight kueri standar menghasilkan penghitung yang dapat diakses melalui stackdriver. Metrik ini tersedia menggunakan Cloud Monitoring API dengan insight kueri lanjutan. Untuk mengetahui informasi selengkapnya, lihat metrikGoogle Cloud .

Berapa panjang string kueri maksimum?

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

Dapatkah saya menggunakan fitur analisis kueri lanjutan untuk AlloyDB dalam replikasi lintas-region?

Anda tidak dapat mengaktifkan fitur analisis kueri lanjutan untuk AlloyDB di cluster dengan instance sekunder. Sebelum membuat instance sekunder di cluster, Anda harus menonaktifkan fitur analisis kueri lanjutan untuk AlloyDB di semua instance dalam cluster jika fitur analisis kueri lanjutan sudah diaktifkan.

Langkah berikutnya