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.
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:
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
. - Untuk membuka halaman Ringkasan instance, klik nama instance. .
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insights.
- Pastikan Enable Query insights diaktifkan.
- Jika belum dipilih, pilih Enable Enterprise Plus features.
- Pilih Enable index advisor.
- Klik Simpan.
Menonaktifkan rekomendasi index advisor
Untuk menonaktifkan rekomendasi index advisor, lakukan hal berikut:
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Di kartu Configuration, klik Edit configuration.
- Di bagian Customize your instance, luaskan Query insights.
- Hapus centang pada kotak Enable index advisor.
- 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
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Query Insights.
- Rekomendasi index advisor ditampilkan di kolom Recommendation di bagian Top queries and tags.
- 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:
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Query Insights.
- Di bagian Kueri dan tag teratas, klik Kueri.
- 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.
- Klik kueri untuk mempelajari lebih lanjut rekomendasi untuk kueri yang dipilih, termasuk informasi berikut:
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.
Membuat indeks yang direkomendasikan menggunakan dasbor Query Insights
Untuk membuat indeks yang direkomendasikan menggunakan dasbor Query Insights, lakukan hal berikut:
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Query Insights.
- Di tabel Top dimensions by database load, klik Queries.
- Klik Create Indexes untuk kueri tertentu.
- Klik Copy all index commands. Perintah
CREATE INDEXdisalin ke papan klip Anda. - Hubungkan ke instance utama di command line.
Untuk membuat indeks yang direkomendasikan, jalankan perintah yang disalin ke papan klip Anda, misalnya:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Membuat indeks yang direkomendasikan menggunakan tampilan tabel database
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
-
Di konsol Cloud de Confiance , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Klik Query Insights.
- Di tabel Top dimensions by database load, klik Queries.
- Klik Create indexes untuk kueri tertentu.
- Klik Tampilkan kueri yang terpengaruh.
- 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.