Utiliser le conseiller d'index

AlloyDB pour PostgreSQL propose un conseiller d'index qui suit les requêtes traitées régulièrement par votre base de données. Il analyse régulièrement ces requêtes pour recommander de nouveaux index susceptibles d'en améliorer les performances.

Vous pouvez afficher et interroger ses recommandations sous forme de tableau, ou demander une analyse et un rapport à la demande à tout moment.

Avant de commencer

Avant d'utiliser le conseiller d'index, assurez-vous de remplir les conditions suivantes.

Activer les extensions requises

  1. Dans la console Google Cloud , accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Insights sur les requêtes, cliquez sur Modifier les paramètres de la requête.

  4. Cliquez sur Activer le conseiller d'index.

  5. Pour activer les recommandations d'index de recherche vectorielle pour les index ScaNN (Scalable Nearest Neighbors), activez l'option scann.enable_preview_features (Preview). Pour en savoir plus, consultez Configurer les options de base de données d'une instance.

Afficher les recommandations du conseiller d'index

AlloyDB exécute automatiquement et régulièrement l'analyse du conseiller d'index. Vous pouvez lire ses résultats dans deux vues de table situées dans chacune de vos bases de données :

  • google_db_advisor_recommended_indexes répertorie les nouveaux index recommandés pour sa base de données. Il comprend également des estimations de l'espace de stockage requis pour chaque index et du nombre de requêtes que chaque index peut affecter.

  • google_db_advisor_workload_report liste chaque requête pour laquelle le conseiller recommande un ou plusieurs nouveaux index. Chaque ligne récapitule les recommandations pour la requête concernée.

  • google_db_advisor.enable_vector_index_advisor permet à l'extension google_db_advisor de recommander des index pour les requêtes vectorielles. Vous pouvez également activer cet indicateur à l'aide de l'indicateur scann.enable_preview_features (dans Aperçu).

Par exemple, pour afficher les résultats de l'analyse des recommandations d'index la plus récente, au format tableau, exécutez la requête suivante :

SELECT * FROM google_db_advisor_recommended_indexes;

Si l'analyse la plus récente du conseiller d'index ne trouve aucune recommandation, cette requête renvoie un tableau sans aucune ligne.

Comme tous ces rapports existent en tant que vues de base de données ordinaires, vous pouvez écrire des requêtes qui filtrent ou présentent les informations comme vous le souhaitez. Par exemple, pour afficher un rapport qui associe les index recommandés à la requête complète associée, associez les vues google_db_advisor_workload_report et google_db_advisor_workload_statements sur leurs colonnes query_id respectives :

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;

Demander manuellement une analyse de l'index

Plutôt que d'attendre la prochaine analyse planifiée du conseiller d'index, vous pouvez demander à AlloyDB d'exécuter immédiatement une analyse et d'afficher son rapport. Pour ce faire, exécutez la fonction SQL suivante :

SELECT * FROM google_db_advisor_recommend_indexes();

Une fois l'analyse terminée, AlloyDB affiche un rapport sous forme de tableau contenant la description et les besoins de stockage estimés de tous les index recommandés. Si l'analyse ne trouve aucun nouvel index à recommander, la vue ne contient aucune ligne.

Notez que le rôle utilisateur PostgreSQL qui exécute cette commande peut affecter les recommandations affichées. Si cette requête est exécutée par postgres ou un autre utilisateur disposant du rôle alloydbsuperuser, AlloyDB affiche toutes les recommandations actuelles de l'outil de conseil sur les index. Dans le cas contraire, AlloyDB limite son affichage aux recommandations d'index en fonction des requêtes émises par l'utilisateur actuel de la base de données.

Appliquer les recommandations du conseiller d'index

La colonne index de la vue google_db_advisor_recommended_indexes contient, dans chaque ligne, une instruction LDD CREATE INDEX PostgreSQL complète permettant de générer l'index recommandé dans cette ligne.

Pour appliquer la recommandation de cette ligne, exécutez l'instruction LDD exactement telle qu'elle est présentée. Cela inclut de le copier dans votre presse-papiers et de le coller dans une requête psql.

Par exemple, considérons ce résultat de l'exécution manuelle d'une analyse à l'aide de la requête décrite dans la section précédente :

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Ce rapport contient une seule recommandation : ajouter un index à une seule colonne sur la colonne age dans la table Students du schéma School. Pour appliquer ce conseil, saisissez une requête LDD exactement comme indiqué dans le rapport :

CREATE INDEX ON "School"."Students"("age");

Afficher les requêtes suivies du conseiller d'index

La vue google_db_advisor_workload_statements contient la liste de toutes les requêtes suivies par le conseiller d'index, ainsi que d'importantes métadonnées pour chacune d'elles, telles que les métriques suivantes :

  • Nombre de fois où l'instance a exécuté cette requête
  • Temps total passé par l'instance à traiter ces requêtes
  • ID de l'utilisateur de la base de données qui exécute ces requêtes

Effacer les requêtes suivies du conseiller d'index

Vous pouvez réinitialiser le comportement du conseiller d'index sur une instance en effaçant les requêtes qu'il suit. Pour ce faire, exécutez la fonction SQL suivante :

SELECT google_db_advisor_reset();

AlloyDB vide immédiatement la collection de requêtes suivies du conseiller d'index.

Configurer le conseiller d'index

Bien que le conseiller d'index soit conçu pour fonctionner dans la plupart des cas d'utilisation avec ses paramètres par défaut, vous pouvez affiner son comportement en définissant différents indicateurs de base de données. Pour en savoir plus, consultez Options du conseiller d'index.