Halaman ini menjelaskan tentang konsultan indeks Cloud SQL untuk PostgreSQL, dan cara melihat serta menerapkan rekomendasi indeksnya.
Cloud SQL untuk PostgreSQL menawarkan penasihat indeks yang melacak kueri yang ditangani database Anda. Secara berkala, Cloud akan menganalisis kueri ini untuk merekomendasikan indeks baru yang dapat meningkatkan performa kueri.
Anda dapat melihat dan membuat kueri rekomendasi konsultan indeks sebagai tabel, atau meminta analisis dan laporan on demand kapan saja.
Aktifkan rekomendasi konsultan indeks
Untuk mengaktifkan rekomendasi konsultan indeks, tambahkan flagcloudsql.enable_index_advisor
ke instance Cloud SQL untuk PostgreSQL Anda. Untuk mengetahui informasi lebih lanjut cara menambahkan flag ke instance, lihat Mengonfigurasi flag database.
Nonaktifkan rekomendasi konsultan indeks
Untuk menonaktifkan rekomendasi konsultan indeks, hapus tandacloudsql.enable_index_advisor
dari instance Cloud SQL untuk PostgreSQL. Untuk mengetahui informasi lebih lanjut cara menghapus flag ke instance, lihat Mengonfigurasi flag database.
Melihat rekomendasi konsultan indeks
Cloud SQL untuk PostgreSQL secara otomatis menjalankan analisis konsultan indeks secara berkala.
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 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 penasihat 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 tersebut merupakan tampilan database biasa, Anda dapat
menulis kueri yang memfilter atau menyajikan informasi ini. Misalnya,
untuk melihat laporan yang menyambungkan indeks yang direkomendasikan dengan
kueri terkait secara lengkap, gabungkan tampilan
google_db_advisor_workload_report
dan
google_db_advisor_workload_statements
di
kolom query_id
-nya 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 agar Cloud SQL untuk PostgreSQL segera menjalankan analisis 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 estimasi 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 untuk mengindeks rekomendasi berdasarkan kueri yang dikeluarkan oleh pengguna database saat ini.
Menerapkan rekomendasi konsultan indeks
Kolom index
pada tampilan google_db_advisor_recommended_indexes
berisi, di setiap baris, pernyataan DDL CREATE INDEX
PostgreSQL
lengkap untuk menghasilkan indeks yang direkomendasikan di baris tersebut.
Untuk menerapkan rekomendasi baris, jalankan pernyataan DDL tersebut, persis seperti yang ditampilkan. Hal ini termasuk menyalin ke papan klip dan menempelkannya
ke dalam perintah psql
.
Misalnya, perhatikan 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 kolom tunggal di kolom age
dalam tabel Students
skema School
. Untuk menerapkan saran ini, masukkan kueri DDL seperti
yang direpresentasikan dalam laporan:
CREATE INDEX ON "School"."Students"("age");
Melihat kueri yang dilacak penasihat 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:
- Berapa kali instance menjalankan setiap kueri
- Total waktu yang dihabiskan instance untuk memproses kueri ini
- ID pengguna database yang menjalankan kueri ini
Hapus kueri yang dilacak penasihat 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 segera mengosongkan koleksi kueri yang dilacak oleh konsultan indeks.