Utiliser le conseiller d'index

Cette page décrit le conseiller d'index Cloud SQL pour PostgreSQL et explique comment afficher et appliquer ses recommandations d'index.

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

Vous pouvez afficher et interroger les recommandations du conseiller d'index sous forme de table, ou demander une analyse et un rapport à la demande à tout moment.

Activer les recommandations du conseiller d'index

Pour activer les recommandations de conseiller d'index, configurez Gemini dans les bases de données.

Désactiver les recommandations du conseiller d'index

Pour désactiver les recommandations du conseiller d'index, supprimez l'option cloudsql.enable_index_advisor de votre instance Cloud SQL  pour PostgreSQL. Pour en savoir plus sur la suppression d'une option de votre instance, consultez la page Configurer des options de base de données.

Afficher les recommandations du conseiller d'index

Cloud SQL pour PostgreSQL exécute automatiquement et régulièrement l'analyse du conseiller d'index.

Vous pouvez lire ses résultats via les vues de table suivantes situées dans chacune de vos bases de données:

  • google_db_advisor_recommended_indexes: répertorie tous les nouveaux index recommandés pour chaque 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: répertorie 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.

Par exemple, pour afficher les résultats de la dernière analyse de recommandations d'index, mis en forme en tant que table, 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, la requête renvoie une table sans ligne.

Étant donné que 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 ces informations. 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 d'index

Plutôt que d'attendre la prochaine analyse planifiée du conseiller d'index, vous pouvez demander à Cloud SQL pour PostgreSQL d'exécuter immédiatement une analyse et d'afficher son rapport. Pour Cloud SQL pour PostgreSQL, vous devez attendre au moins 15 minutes après avoir activé le conseiller d'index pour exécuter une analyse manuelle. Pour ce faire, exécutez la fonction SQL suivante:

SELECT * FROM google_db_advisor_recommend_indexes();

Une fois l'analyse terminée, Cloud SQL pour PostgreSQL affiche un rapport sous forme de table 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 qui exécute cette commande peut affecter les recommandations affichées. Cloud SQL pour PostgreSQL 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 en index

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

Pour appliquer la recommandation de cette ligne, exécutez cette instruction LDD, exactement comme indiqué. Vous devez donc le copier dans votre presse-papiers et le coller dans une requête psql.

Par exemple, considérons le 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 ne contient qu'une seule recommandation: ajouter un index à une colonne sur la colonne age de la table Students du schéma School. Pour appliquer ce conseil, saisissez une requête LDD telle que représentée 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 une liste de toutes les requêtes suivies par le conseiller d'index, ainsi que des métadonnées importantes pour chacune d'entre elles, telles que les métriques suivantes:

  • Nombre d'exécutions de chaque requête par l'instance
  • Temps total consacré par l'instance au traitement de ces requêtes
  • ID de l'utilisateur de base de données exécutant ces requêtes

Effacer les requêtes suivies du conseiller en index

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

SELECT google_db_advisor_reset();

Cloud SQL pour PostgreSQL vide immédiatement la collection de requêtes suivies du conseiller d'index.