AlloyDB untuk PostgreSQL menawarkan penasihat indeks yang melacak kueri yang ditangani database Anda secara rutin. Secara berkala, alat ini menganalisis kueri tersebut untuk merekomendasikan indeks baru yang dapat meningkatkan performa kueri.
Anda dapat melihat dan membuat kueri rekomendasinya sebagai tabel, atau meminta analisis dan laporan sesuai permintaan kapan saja.
Sebelum memulai
Sebelum menggunakan penasihat indeks, pastikan Anda memenuhi persyaratan berikut.
Aktifkan ekstensi yang diperlukan
Di konsol Google Cloud , buka halaman Clusters.
Klik cluster di kolom Nama Resource.
Di halaman Query Insights, klik Edit setelan kueri.
Klik Aktifkan penasihat indeks.
Untuk mengaktifkan rekomendasi indeks penelusuran vektor untuk indeks Tetangga Terdekat yang Skalabel (ScaNN), aktifkan tanda
scann.enable_preview_features
(Pratinjau). Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi flag database instance.
Melihat rekomendasi penasihat indeks
AlloyDB otomatis menjalankan analisis penasihat indeks secara berkala. Anda dapat membaca hasilnya melalui dua tampilan tabel yang ada di setiap database Anda:
google_db_advisor_recommended_indexes
mencantumkan indeks baru yang direkomendasikan untuk database-nya. Laporan ini juga mencakup 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 penasihatnya merekomendasikan satu atau beberapa indeks baru. Setiap baris meringkas rekomendasi untuk kueri yang relevan.google_db_advisor.enable_vector_index_advisor
memungkinkan ekstensigoogle_db_advisor
merekomendasikan indeks untuk kueri vektor. Anda juga dapat mengaktifkan flag ini menggunakan flagscann.enable_preview_features
(di Pratinjau).
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 penasihat 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 dengan cara apa pun yang Anda inginkan. Misalnya, untuk melihat laporan yang mencocokkan indeks yang direkomendasikan dengan
kueri terkait lengkapnya, gabungkan tampilan
google_db_advisor_workload_report
dan
google_db_advisor_workload_statements
pada
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 penasihat indeks, Anda dapat meminta AlloyDB untuk menjalankan analisis dengan segera dan menampilkan laporannya. Untuk melakukannya, jalankan fungsi SQL ini:
SELECT * FROM google_db_advisor_recommend_indexes();
Setelah analisis selesai, AlloyDB akan menampilkan laporan berformat tabel dengan deskripsi dan perkiraan kebutuhan penyimpanan indeks yang direkomendasikan. Jika analisis tidak menemukan indeks baru yang direkomendasikan, tampilan tidak akan berisi baris.
Perhatikan bahwa peran pengguna PostgreSQL
yang menjalankan perintah ini dapat memengaruhi rekomendasi yang ditampilkan. Jika kueri ini dijalankan oleh postgres
atau pengguna lain dengan peran alloydbsuperuser
, AlloyDB akan menampilkan semua rekomendasi saat ini dari penasihat indeks. Jika tidak, AlloyDB membatasi tampilannya untuk mengindeks rekomendasi berdasarkan kueri yang dikeluarkan oleh pengguna database saat ini.
Menerapkan rekomendasi penasihat indeks
Kolom index
dari tampilan google_db_advisor_recommended_indexes
berisi, di setiap baris, pernyataan DDL CREATE INDEX
PostgreSQL lengkap
untuk membuat indeks yang direkomendasikan dalam baris tersebut.
Untuk menerapkan rekomendasi baris tersebut, jalankan pernyataan DDL tersebut, persis seperti yang ditampilkan. 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 baru pada kolom age
dalam tabel Students
skema School
. Untuk menerapkan saran ini, masukkan kueri DDL persis seperti yang ditampilkan dalam laporan:
CREATE INDEX ON "School"."Students"("age");
Melihat kueri terlacak penasihat indeks
Tampilan google_db_advisor_workload_statements
berisi daftar semua kueri yang telah dilacak oleh penasihat indeks, serta metadata penting untuk setiap kueri, seperti metrik berikut:
- Jumlah kueri ini dieksekusi oleh instance
- Total waktu yang dihabiskan instance untuk memproses kueri ini
- ID pengguna database yang menjalankan kueri ini
Menghapus kueri terlacak penasihat indeks
Anda dapat mereset perilaku penasihat indeks pada instance dengan menghapus kueri yang dilacaknya. Untuk melakukannya, jalankan fungsi SQL ini:
SELECT google_db_advisor_reset();
AlloyDB akan segera mengosongkan kumpulan kueri yang dilacak oleh penasihat indeks.
Mengonfigurasi penasihat indeks
Meskipun dirancang untuk sebagian besar kasus penggunaan dengan setelan defaultnya, Anda dapat menyetel perilaku penasihat indeks dengan menetapkan berbagai tanda database. Untuk mempelajari lebih lanjut, lihat Flag penasihat indeks.