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 entiĂšrement gĂ©rĂ© qui suit rĂ©guliĂšrement les requĂȘtes traitĂ©es par votre base de donnĂ©es. Le conseiller d'index analyse rĂ©guliĂšrement ces requĂȘtes pour recommander de nouveaux index susceptibles d'en amĂ©liorer les performances. L'outil Index Advisor vous permet de dĂ©tecter et de rĂ©soudre les problĂšmes de performances des systĂšmes et des requĂȘtes.

Comment fonctionne le conseiller d'index ?

Le conseiller d'index vous aide Ă  amĂ©liorer le traitement des requĂȘtes en :

  • recommandant un ensemble d'index Ă  l'aide de commandes SQL permettant de crĂ©er des index.
  • fournissant des donnĂ©es pour vous aider Ă  Ă©valuer les index recommandĂ©s, par exemple la taille de stockage estimĂ©e et l'impact des index sur une requĂȘte.
L'outil de conseil sur les index stocke et affiche la commande CREATE INDEX contenant le nom de la base de donnĂ©es, le nom du schĂ©ma, le nom de la table et les noms de colonnes. Les requĂȘtes suivies sont toutes des requĂȘtes normalisĂ©es dont tous les littĂ©raux ont Ă©tĂ© supprimĂ©s.

Les recommandations d'index sont chiffrées au repos.

Limites

Le conseiller d'index Cloud SQL pour PostgreSQL prĂ©sente les limites suivantes:

  • Le conseiller d'index ne fournit que des recommandations CREATE INDEX.
  • Le conseiller d'index n'est pas compatible avec les instances prĂ©sentant les configurations suivantes :
    • Instances Cloud SQL Enterprise
    • Instances rĂ©pliquĂ©es avec accĂšs en lecture

Avant de commencer

Pour obtenir des recommandations de l'outil de conseil sur les index, vous devez utiliser l'Ă©dition Cloud SQL Enterprise Plus et activer les insights sur les requĂȘtes pour l'Ă©dition Cloud SQL Enterprise Plus pour votre instance Cloud SQL.

RĂŽles et autorisations requis

Pour obtenir les autorisations nĂ©cessaires pour obtenir des recommandations de l'outil de conseil sur les index, demandez Ă  votre administrateur de vous accorder le rĂŽle IAM Lecteur Cloud SQL (roles/cloudsql.viewer) sur le projet qui hĂ©berge l'instance Cloud SQL. Pour en savoir plus sur l'attribution de rĂŽles, consultez la page GĂ©rer l'accĂšs aux projets, aux dossiers et aux organisations.

Ce rĂŽle prĂ©dĂ©fini contient les autorisations requises pour obtenir des recommandations de l'outil Index Advisor. Pour connaĂźtre les autorisations exactes requises, dĂ©veloppez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour obtenir des recommandations de l'outil de conseil sur les index :

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

Vous pouvez également obtenir ces autorisations avec des rÎles personnalisés ou d'autres rÎles prédéfinis.

Activer les recommandations du conseiller d'index

Pour activer les recommandations du conseiller d'index :

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

    .
  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom. .
  3. Dans la tuile Configuration, cliquez sur Modifier la configuration.
  4. Dans la section Personnaliser votre instance, dĂ©veloppez Insights sur les requĂȘtes.
  5. Assurez-vous que l'option Activer Insights sur les requĂȘtes est activĂ©e.
  6. Si ce n'est pas dĂ©jĂ  fait, sĂ©lectionnez Activer les fonctionnalitĂ©s Enterprise Plus.
  7. Sélectionnez Activer le conseiller d'index.
  8. Cliquez sur Enregistrer.

Désactiver les recommandations du conseiller d'index

Pour dĂ©sactiver les recommandations du conseiller d'index, procĂ©dez comme suit :

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans la tuile Configuration, cliquez sur Modifier la configuration.
  4. Dans la section Personnaliser votre instance, dĂ©veloppez Insights sur les requĂȘtes.
  5. Décochez la case Activer le conseiller d'index.
  6. Cliquez sur Enregistrer.

Afficher les recommandations du conseiller d'index

Cloud SQL exĂ©cute automatiquement et rĂ©guliĂšrement l'analyse du conseiller d'index. Pour afficher les recommandations du conseiller d'index, utilisez le tableau de bord "Insights sur les requĂȘtes". Vous pouvez Ă©galement afficher et interroger les recommandations du conseiller d'index sous forme de tableau, ou demander une analyse et un rapport Ă  la demande Ă  tout moment.

Afficher et filtrer les recommandations dans le tableau de bord "Insights sur les requĂȘtes"

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requĂȘtes.
  4. Les recommandations du conseiller d'index sont affichĂ©es dans la colonne Recommandation de la section RequĂȘtes et tags les plus frĂ©quents.
  5. (Facultatif) Pour n'afficher que les requĂȘtes avec des recommandations CREATE INDEX, ajoutez un filtre pour le champ Recommandation : CrĂ©er des index.

Afficher les recommandations pour une requĂȘte

Pour afficher les recommandations d'index pour une requĂȘte spĂ©cifique, procĂ©dez comme suit :

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requĂȘtes.
  4. Dans la section RequĂȘtes et tags les plus frĂ©quents, cliquez sur RequĂȘtes.
  5. Pour obtenir les dĂ©tails d'une recommandation sur une requĂȘte, effectuez l'une des opĂ©rations suivantes :
    • Cliquez sur une requĂȘte pour en savoir plus sur les recommandations de la requĂȘte sĂ©lectionnĂ©e, y compris les informations suivantes :
      • Impact sur les performances (Ă©levĂ©, moyen et faible): estimation de la vitesse de requĂȘte aprĂšs la crĂ©ation de tous les index recommandĂ©s.
      • Recommandations: permet de crĂ©er des recommandations d'index.
      • Tables concernĂ©es : nombre de tables qui seront concernĂ©es lorsque des index seront créés.
      • Espace de stockage supplĂ©mentaire estimĂ© nĂ©cessaire: taille d'espace de stockage estimĂ©e nĂ©cessaire pour crĂ©er tous les index recommandĂ©s.
      • Nombre de requĂȘtes concernĂ©es : nombre total de requĂȘtes de la charge de travail concernĂ©es par les recommandations d'index. Un index peut bĂ©nĂ©ficier de plusieurs requĂȘtes.
    • Cliquez sur CrĂ©er des index pour une requĂȘte spĂ©cifique afin d'obtenir des recommandations dĂ©taillĂ©es sur la crĂ©ation d'index afin d'amĂ©liorer les performances des requĂȘtes.

Afficher les recommandations sous forme de vue Tableau de base de données

Vous pouvez lire ses rĂ©sultats dans les vues Tableau suivantes, qui se trouvent dans chacune de vos bases de donnĂ©es :

  • google_db_advisor_recommended_indexes : rĂ©pertorie 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 : 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.

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.

É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.

Créer des index recommandés

Vous pouvez crĂ©er des index recommandĂ©s Ă  partir du tableau de bord "Insights sur les requĂȘtes" ou d'une vue Tableau de base de donnĂ©es.

Pour crĂ©er un index recommandĂ© Ă  l'aide du tableau de bord "Insights sur les requĂȘtes", procĂ©dez comme suit :

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requĂȘtes.
  4. Dans le tableau Dimensions principales par charge de la base de donnĂ©es, cliquez sur RequĂȘtes.
  5. Cliquez sur CrĂ©er des index pour une requĂȘte spĂ©cifique.
  6. Cliquez sur Copier toutes les commandes d'index. Les commandes CREATE INDEX sont copiées dans le presse-papiers.
  7. Connectez-vous Ă  l'instance principale sur la ligne de commande.
  8. Pour crĂ©er les index recommandĂ©s, exĂ©cutez les commandes qui ont Ă©tĂ© copiĂ©es dans votre presse-papiers, par exemple :

    CREATE INDEX ON "public"."demo_order" ("customer_id");

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 comme indiquĂ© dans le rapport :

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

Afficher les requĂȘtes concernĂ©es

  1. Dans la console Google Cloud , accĂ©dez Ă  la page Instances Cloud SQL.

    AccĂ©der Ă  la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Cliquez sur Insights sur les requĂȘtes.
  4. Dans le tableau Dimensions principales par charge de la base de donnĂ©es, cliquez sur RequĂȘtes.
  5. Cliquez sur CrĂ©er des index pour une requĂȘte spĂ©cifique.
  6. Cliquez sur Afficher les requĂȘtes concernĂ©es.
  7. Cliquez sur une requĂȘte pour en savoir plus sur celle-ci.

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 des mĂ©tadonnĂ©es importantes pour chacune d'elles, telles que les mĂ©triques suivantes :

  • Nombre de fois oĂč l'instance a exĂ©cutĂ© chaque 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();

Cloud SQL pour PostgreSQL vide immĂ©diatement la collection de requĂȘtes suivies du conseiller d'index.

Étapes suivantes