Menggunakan konsultan indeks

AlloyDB untuk PostgreSQL menawarkan penasihat indeks 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 melihat dan membuat kueri rekomendasinya sebagai tabel, atau meminta analisis dan laporan on demand kapan saja.

Melihat rekomendasi penasihat indeks

AlloyDB secara otomatis menjalankan analisis penasihat indeks secara berkala. Anda dapat membaca hasilnya melalui dua tampilan tabel yang terletak di setiap database:

  • 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 terpengaruh oleh setiap indeks.

  • google_db_advisor_workload_report mencantumkan setiap kueri yang direkomendasikan penasihat untuk satu atau beberapa indeks baru. Setiap baris menyampulkan 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 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 memasangkan 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 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 yang akan 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 akan 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 di baris tersebut.

Untuk menerapkan rekomendasi baris tersebut, jalankan pernyataan DDL tersebut, persis seperti yang ditampilkan. Tindakan 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 kolom tunggal baru pada kolom age di 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 konsultan 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:

  • Frekuensi instance mengeksekusi kueri ini
  • 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 penasihat indeks pada instance dengan menghapus kueri yang dilacak. Untuk melakukannya, jalankan fungsi SQL ini:

SELECT google_db_advisor_reset();

AlloyDB segera mengosongkan kumpulan kueri yang dilacak oleh index advisor.

Mengonfigurasi penasihat indeks

Meskipun penasihat indeks dirancang untuk berfungsi pada sebagian besar kasus penggunaan dengan setelan defaultnya, Anda dapat menyesuaikan perilakunya dengan menetapkan berbagai tanda database. Untuk mempelajari lebih lanjut, lihat halaman referensi Flag penasihat indeks.