Menggunakan konsultan indeks

Halaman ini menjelaskan index advisor Cloud SQL untuk PostgreSQL dan cara melihat serta menerapkan rekomendasi indeksnya.

Cloud SQL untuk PostgreSQL menawarkan index advisor yang terkelola sepenuhnya yang melacak kueri yang ditangani database Anda secara rutin. Secara berkala, index advisor menganalisis kueri ini untuk merekomendasikan indeks baru yang dapat meningkatkan performa kueri. Index advisor memungkinkan Anda mendeteksi dan memperbaiki masalah performa pada sistem dan kueri.

Bagaimana cara kerja index advisor?

Index advisor membantu Anda meningkatkan pemrosesan kueri dengan melakukan hal berikut:

  • Merekomendasikan serangkaian indeks dengan perintah SQL untuk membuat indeks.
  • Memberikan data untuk membantu Anda mengevaluasi indeks yang direkomendasikan, misalnya, perkiraan ukuran penyimpanan dan dampak indeks pada kueri.
Index advisor menyimpan dan menampilkan perintah CREATE INDEX yang berisi nama database, nama skema, nama tabel, dan nama kolom. Kueri yang dilacak adalah semua kueri yang dinormalkan dengan semua literal dihapus.

Rekomendasi indeks dienkripsi dalam penyimpanan.

Batasan

Index advisor Cloud SQL untuk PostgreSQL memiliki batasan berikut:

  • Index advisor hanya memberikan rekomendasi CREATE INDEX.
  • Index advisor tidak mendukung instance dengan konfigurasi berikut:
    • Instance edisi Cloud SQL Enterprise
    • Instance replika baca

Sebelum memulai

Untuk mendapatkan rekomendasi index advisor, Anda harus menggunakan edisi Cloud SQL Enterprise Plus dan mengaktifkan Query Insights untuk edisi Cloud SQL Enterprise Plus untuk instance Cloud SQL Anda.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan guna memperoleh rekomendasi index advisor, minta administrator untuk memberi Anda peran IAM Cloud SQL Viewer (roles/cloudsql.viewer) pada 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 mendapatkan rekomendasi index advisor. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mendapatkan rekomendasi index advisor:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

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

Mengaktifkan rekomendasi index advisor

Untuk mengaktifkan rekomendasi index advisor, lakukan hal berikut:

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

    .
  2. Untuk membuka halaman Ringkasan instance, klik nama instance. .
  3. Di kartu Configuration, klik Edit configuration.
  4. Di bagian Customize your instance, luaskan Query insights.
  5. Pastikan Enable Query insights diaktifkan.
  6. Jika belum dipilih, pilih Enable Enterprise Plus features.
  7. Pilih Enable index advisor.
  8. Klik Simpan.

Menonaktifkan rekomendasi index advisor

Untuk menonaktifkan rekomendasi index advisor, lakukan hal berikut:

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Di kartu Configuration, klik Edit configuration.
  4. Di bagian Customize your instance, luaskan Query insights.
  5. Hapus centang pada kotak Enable index advisor.
  6. Klik Simpan.

Melihat rekomendasi index advisor

Cloud SQL otomatis menjalankan analisis index advisor secara berkala. Untuk melihat rekomendasi index advisor, gunakan dasbor Query Insights. Anda juga dapat melihat dan mengkueri rekomendasi index advisor sebagai tabel atau meminta analisis dan laporan on-demand kapan saja.

Melihat dan memfilter rekomendasi di dasbor Query Insights

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Query Insights.
  4. Rekomendasi index advisor ditampilkan di kolom Recommendation di bagian Top queries and tags.
  5. Opsional: Untuk hanya melihat kueri dengan rekomendasi CREATE INDEX, tambahkan filter untuk Recommendation: Create Indexes.

Melihat rekomendasi untuk kueri

Untuk melihat rekomendasi indeks untuk kueri tertentu, ikuti langkah-langkah berikut:

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Query Insights.
  4. Di bagian Kueri dan tag teratas, klik Kueri.
  5. Untuk mendapatkan detail rekomendasi untuk kueri, lakukan salah satu hal berikut:
    • Klik kueri untuk mempelajari lebih lanjut rekomendasi untuk kueri yang dipilih, termasuk informasi berikut:
      • Dampak performa (tinggi, sedang, dan rendah): Perkiraan kecepatan kueri setelah semua indeks yang direkomendasikan dibuat.
      • Rekomendasi: Membuat rekomendasi indeks.
      • Tabel yang terpengaruh: Jumlah tabel yang akan terpengaruh saat indeks dibuat.
      • Perkiraan penyimpanan tambahan yang diperlukan: Perkiraan ukuran penyimpanan yang diperlukan untuk membuat semua indeks yang direkomendasikan.
      • Jumlah kueri yang terpengaruh: Jumlah total kueri dalam workload yang terpengaruh oleh rekomendasi indeks. Indeks dapat menguntungkan beberapa kueri.
    • Klik Create Indexes untuk kueri tertentu guna mempelajari rekomendasi mendetail tentang cara membuat indeks untuk meningkatkan performa kueri.

Melihat rekomendasi sebagai tampilan tabel database

Anda dapat membaca hasilnya melalui tampilan tabel berikut yang terletak di setiap database Anda:

  • google_db_advisor_recommended_indexes: mencantumkan indeks baru yang direkomendasikan untuk setiap database. Laporan ini juga menyertakan estimasi penyimpanan yang diperlukan untuk setiap indeks, dan jumlah kueri yang dapat dipengaruhi oleh setiap indeks.

  • google_db_advisor_workload_report: mencantumkan setiap kueri yang direkomendasikan oleh advisor untuk satu atau beberapa indeks baru. Setiap baris merangkum rekomendasi untuk kueri yang relevan.

Misalnya, untuk melihat hasil analisis rekomendasi indeks terbaru, yang diformat sebagai tabel, jalankan kueri ini:

SELECT * FROM google_db_advisor_recommended_indexes;

Jika analisis terbaru dari index advisor tidak menemukan rekomendasi, kueri ini akan menampilkan tabel tanpa baris.

Karena semua laporan ini ada sebagai tampilan database biasa, Anda dapat menulis kueri yang memfilter atau menampilkan informasi ini. Misalnya, untuk melihat laporan yang menyambungkan indeks yang direkomendasikan dengan kueri terkait lengkapnya, gabungkan tampilan google_db_advisor_workload_report dan google_db_advisor_workload_statements di kolom query_id masing-masing:

SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;

Meminta analisis indeks secara manual

Daripada menunggu analisis terjadwal berikutnya dari index advisor, Anda dapat meminta Cloud SQL untuk PostgreSQL segera menjalankan analisis dan menampilkan laporannya. Untuk Cloud SQL untuk PostgreSQL, Anda harus menunggu setidaknya 15 menit setelah mengaktifkan index advisor untuk menjalankan analisis manual. Untuk melakukannya, jalankan fungsi SQL ini:

SELECT * FROM google_db_advisor_recommend_indexes();

Setelah analisis selesai, Cloud SQL untuk PostgreSQL akan menampilkan laporan berformat tabel dengan deskripsi dan perkiraan kebutuhan penyimpanan dari indeks yang direkomendasikan. Jika analisis tidak menemukan indeks baru untuk direkomendasikan, tampilan tidak akan berisi baris.

Perhatikan bahwa peran pengguna yang menjalankan perintah ini dapat memengaruhi rekomendasi yang ditampilkan. Cloud SQL untuk PostgreSQL membatasi tampilannya pada rekomendasi indeks berdasarkan kueri yang dikeluarkan oleh pengguna database saat ini.

Membuat indeks yang direkomendasikan

Anda dapat membuat indeks yang direkomendasikan dari dasbor Query Insights atau dari tampilan tabel database.

Untuk membuat indeks yang direkomendasikan menggunakan dasbor Query Insights, lakukan hal berikut:

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Query Insights.
  4. Di tabel Top dimensions by database load, klik Queries.
  5. Klik Create Indexes untuk kueri tertentu.
  6. Klik Copy all index commands. Perintah CREATE INDEX disalin ke papan klip Anda.
  7. Hubungkan ke instance utama di command line.
  8. Untuk membuat indeks yang direkomendasikan, jalankan perintah yang disalin ke papan klip Anda, misalnya:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

Kolom index dari tabel virtual google_db_advisor_recommended_indexes berisi, di setiap baris, pernyataan DDL CREATE INDEX PostgreSQL lengkap untuk membuat indeks yang direkomendasikan di baris tersebut.

Untuk menerapkan rekomendasi baris tersebut, jalankan pernyataan DDL tersebut, persis seperti yang ditampilkan. Hal ini termasuk menyalinnya ke papan klip dan menempelkannya ke perintah psql.

Misalnya, pertimbangkan output ini dari menjalankan analisis secara manual, menggunakan kueri yang dijelaskan di bagian sebelumnya:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Laporan ini berisi satu rekomendasi: menambahkan indeks satu kolom pada kolom age di tabel Students skema School. Untuk menerapkan saran ini, masukkan kueri DDL seperti yang ditunjukkan dalam laporan:

CREATE INDEX ON "School"."Students"("age");

Melihat kueri yang terpengaruh

  1. Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Query Insights.
  4. Di tabel Top dimensions by database load, klik Queries.
  5. Klik Create indexes untuk kueri tertentu.
  6. Klik Tampilkan kueri yang terpengaruh.
  7. Klik kueri untuk mempelajari detail tentang kueri yang terpengaruh.

Melihat kueri yang dilacak index advisor

Tampilan google_db_advisor_workload_statements berisi daftar semua kueri yang telah dilacak oleh index advisor, serta metadata penting untuk setiap kueri, seperti metrik berikut:

  • Berapa kali instance menjalankan setiap kueri
  • Total waktu yang dihabiskan instance untuk memproses kueri ini
  • ID pengguna database yang menjalankan kueri ini

Menghapus kueri yang dilacak oleh index advisor

Anda dapat mereset perilaku index advisor pada instance dengan menghapus kueri yang dilacak. Untuk melakukannya, jalankan fungsi SQL ini:

SELECT google_db_advisor_reset();

Cloud SQL untuk PostgreSQL segera mengosongkan koleksi kueri yang dilacak oleh index advisor.

Langkah berikutnya