Menggunakan konsultan indeks

Halaman ini menjelaskan konsultan indeks Cloud SQL untuk PostgreSQL dan cara melihat serta menerapkan rekomendasi indeksnya.

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

Cara kerja konsultan indeks

Konsultan indeks membantu Anda meningkatkan pemrosesan kueri dengan melakukan hal berikut:

  • Merekomendasikan kumpulan indeks dengan perintah SQL untuk membuat indeks.
  • Menyediakan data untuk membantu Anda mengevaluasi indeks yang direkomendasikan, misalnya, perkiraan ukuran penyimpanan dan dampak indeks pada kueri.
Konsultan indeks 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 saat dalam penyimpanan.

Batasan

Konsultan indeks Cloud SQL untuk PostgreSQL memiliki batasan berikut:

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

Sebelum memulai

Untuk mendapatkan rekomendasi konsultan indeks, Anda harus menggunakan edisi Cloud SQL Enterprise Plus dan mengaktifkan Query Insight untuk edisi Cloud SQL Enterprise Plus untuk instance Cloud SQL Anda.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mendapatkan rekomendasi konsultan indeks, minta administrator untuk memberi Anda peran IAM Cloud SQL Viewer (roles/cloudsql.viewer) di project yang menghosting instance Cloud SQL. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran yang telah ditentukan ini berisi izin yang diperlukan untuk mendapatkan rekomendasi konsultan indeks. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mendapatkan rekomendasi konsultan indeks:

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

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

Mengaktifkan rekomendasi konsultan indeks

Untuk mengaktifkan rekomendasi konsultan indeks, lakukan hal berikut:

  1. Di Google Cloud Konsol, 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, perluas Query insights.
  5. Pastikan Enable Query insights diaktifkan.
  6. Jika belum dipilih, pilih Enable Enterprise Plus features.
  7. Pilih Enable index advisor.
  8. Klik Save.

Menonaktifkan rekomendasi konsultan indeks

Untuk menonaktifkan rekomendasi konsultan indeks, lakukan hal berikut:

  1. Di Google Cloud Konsol, 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, perluas Query insights.
  5. Hapus centang pada kotak Enable index advisor.
  6. Klik Save.

Melihat rekomendasi konsultan indeks

Cloud SQL secara otomatis menjalankan analisis konsultan indeks secara berkala. Untuk melihat rekomendasi konsultan indeks, gunakan dasbor Query Insight. Anda juga dapat melihat dan membuat kueri rekomendasi konsultan indeks sebagai tabel atau meminta analisis dan laporan sesuai permintaan kapan saja.

Melihat dan memfilter rekomendasi di dasbor Query Insight

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

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Query insights.
  4. Rekomendasi konsultan indeks ditampilkan di kolom Recommendation pada bagian Top queries and tags.
  5. Opsional: Untuk melihat hanya 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 Google Cloud Konsol, 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 Top queries and tags, klik Queries.
  5. Untuk mendapatkan detail rekomendasi untuk kueri, lakukan salah satu hal berikut:
    • Klik kueri untuk mempelajari rekomendasi lebih lanjut untuk kueri yang dipilih, termasuk informasi berikut:
      • Performance impact (tinggi, sedang, dan rendah): Perkiraan kecepatan kueri setelah semua indeks yang direkomendasikan dibuat.
      • Rekomendasi: Membuat rekomendasi indeks.
      • Tabel terpengaruh: Jumlah tabel yang akan terpengaruh saat indeks dibuat.
      • Additional estimated storage needed: Perkiraan ukuran penyimpanan yang diperlukan untuk membuat semua indeks yang direkomendasikan.
      • Jumlah kueri yang terpengaruh: Total jumlah kueri dalam beban kerja yang terpengaruh oleh rekomendasi indeks. Indeks dapat bermanfaat bagi beberapa kueri.
    • Klik Create Indexes untuk kueri tertentu guna mempelajari rekomendasi mendetail tentang pembuatan 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. Tabel ini juga mencakup perkiraan 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 konsultan untuk satu atau beberapa indeks baru. Setiap baris meringkas 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 konsultan indeks 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 menyajikan informasi ini. Misalnya, untuk melihat laporan yang memasangkan 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 konsultan indeks, Anda dapat meminta Cloud SQL untuk PostgreSQL menjalankan analisis segera dan menampilkan laporannya. Untuk Cloud SQL untuk PostgreSQL, Anda harus menunggu setidaknya 15 menit setelah mengaktifkan konsultan indeks 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 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 ke rekomendasi indeks berdasarkan kueri yang dikeluarkan oleh pengguna database saat ini.

Membuat indeks yang direkomendasikan

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

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

  1. Di Google Cloud Konsol, 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 akan 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 tampilan 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 mencakup 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 di kolom age dalam tabel Students skema School. Untuk menerapkan saran ini, masukkan kueri DDL seperti yang diwakili dalam laporan:

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

Melihat kueri yang terpengaruh

  1. Di Google Cloud Konsol, 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 Show impacted queries.
  7. Klik kueri untuk mempelajari detail tentang kueri yang terpengaruh.

Melihat kueri yang dilacak konsultan indeks

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

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

Menghapus kueri yang dilacak konsultan indeks

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

SELECT google_db_advisor_reset();

Cloud SQL untuk PostgreSQL akan mengosongkan kumpulan kueri yang dilacak konsultan indeks secara langsung.

Langkah berikutnya