AlloyDB untuk PostgreSQL menawarkan index advisor yang melacak kueri yang ditangani database Anda secara rutin. Secara berkala, penasihat indeks menganalisis kueri ini untuk merekomendasikan indeks baru yang dapat meningkatkan performa kueri.
Anda dapat menggunakan rekomendasi index advisor dengan cara berikut:
- Lihat dan terapkan rekomendasi di dasbor Query Insights di konsolGoogle Cloud .
- Buat kueri rekomendasi secara langsung sebagai tampilan tabel database.
- Minta analisis dan laporan on-demand kapan saja.
Untuk mempelajari lebih lanjut cara kerja index advisor, lihat Ringkasan index advisor.
Sebelum memulai
Sebelum menggunakan index advisor, pastikan Anda memenuhi persyaratan berikut.
Mengaktifkan ekstensi yang diperlukan
Di konsol Google Cloud , buka halaman Clusters.
Klik cluster di kolom Resource Name.
Di halaman Query insights, klik Edit query settings.
Klik Enable index advisor.
Melihat rekomendasi index advisor
AlloyDB otomatis menjalankan analisis index advisor secara berkala. Anda dapat melihat rekomendasi indeks yang dihasilkan di dasbor Query insights di konsol Google Cloud atau dengan mengkueri tampilan tabel database secara langsung.
Melihat rekomendasi di Query Insights
AlloyDB mengintegrasikan index advisor dengan query insights dan advanced query insights di konsolGoogle Cloud .
Saat index advisor mengidentifikasi indeks penelusuran vektor B-tree atau ScaNN yang tidak ada dan dapat meningkatkan performa kueri, dasbor Query Insights akan menampilkan rekomendasi dan saran index advisor dalam tampilan berikut:
Di halaman Query Insights, di bagian Top dimensions by database load, pilih tab Queries. Dalam tabel, kolom Recommendations menampilkan link Create indexes di samping kueri yang memiliki rekomendasi index advisor. Anda juga dapat menambahkan filter untuk Recommendation: Create indexes guna melihat kueri yang hanya memiliki rekomendasi indeks.
Memilih kueri dari tabel Queries akan membuka halaman Query details, yang menampilkan kartu Index recommendation di tampilan contoh rencana kueri dan tabel Recommended indexes. Tampilan ini menunjukkan perkiraan dampak performa (tinggi, sedang, atau rendah), jenis indeks dan tabel target yang direkomendasikan, perkiraan penyimpanan tambahan yang diperlukan, jumlah tabel yang terpengaruh, dan jumlah kueri yang terpengaruh.
Mengklik Create indexes (atau View details pada rekomendasi) akan membuka panel Create indexes to improve query performance. Di panel ini, Anda dapat memeriksa pernyataan DDL
CREATE INDEXyang direkomendasikan, melihat perkiraan peningkatan waktu eksekusi, mengklik Show impacted queries untuk memeriksa semua kueri workload yang diuntungkan dari indeks yang direkomendasikan, dan menyalin perintah atau membukanya langsung di AlloyDB Studio.
Untuk petunjuk langkah demi langkah tentang cara mengonfigurasi frekuensi pembaruan rekomendasi, memfilter rekomendasi, dan membuat indeks yang direkomendasikan di konsolGoogle Cloud , lihat Menggunakan index advisor AlloyDB untuk PostgreSQL dengan query insights dan Meningkatkan performa kueri menggunakan fitur query insights lanjutan.
Melihat rekomendasi menggunakan tampilan database
Anda juga dapat membaca hasil index advisor melalui dua tampilan tabel yang terletak di setiap database:
google_db_advisor_recommended_indexesmencantumkan indeks baru yang direkomendasikan untuk databasenya. Laporan ini juga menyertakan perkiraan penyimpanan yang diperlukan untuk setiap indeks, dan jumlah kueri yang dapat dipengaruhi oleh setiap indeks.google_db_advisor_workload_reportmencantumkan 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 menyajikan informasi dengan cara apa pun yang Anda inginkan. Misalnya, untuk melihat laporan yang menyambungkan indeks yang direkomendasikan dengan kueri terkait lengkapnya, gabungkan tabel virtual 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 index advisor, Anda dapat meminta AlloyDB untuk segera menjalankan analisis 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 dari indeks yang direkomendasikan. Jika analisis tidak menemukan indeks baru untuk 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 index advisor. Jika tidak, AlloyDB akan membatasi tampilannya pada rekomendasi indeks berdasarkan kueri yang dikeluarkan oleh pengguna database saat ini.
Menerapkan rekomendasi index advisor
Di dasbor Query insights di konsol Google Cloud , Anda dapat mengklik
Create indexes untuk kueri, mengklik Copy all index commands (atau
Open commands in Studio untuk membuka pernyataan CREATE INDEX di
AlloyDB Studio), lalu menjalankan perintah di instance utama Anda. Untuk petunjuk langkah demi langkah, lihat Membuat indeks yang direkomendasikan di Query Insights.
Saat Anda membuat kueri tampilan database secara langsung, 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 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 kolom tunggal baru di kolom age pada 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 yang dilacak oleh 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:
- Frekuensi instance menjalankan kueri ini
- 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();
AlloyDB segera mengosongkan koleksi kueri yang dilacak oleh index advisor.
Mengonfigurasi index advisor
Meskipun index advisor berfungsi untuk sebagian besar kasus penggunaan dengan setelan defaultnya, Anda dapat menyesuaikan perilakunya dengan menetapkan berbagai flag database.
Misalnya, Anda dapat menetapkan flag google_db_advisor.enable_vector_index_advisor
agar index advisor merekomendasikan indeks untuk kueri vektor. Flag ini diaktifkan secara default.
Untuk mempelajari lebih lanjut, lihat Flag Index advisor.