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.
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 :
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
. - Pour ouvrir la page Présentation d'une instance, cliquez sur son nom. .
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, dĂ©veloppez Insights sur les requĂȘtes.
- Assurez-vous que l'option Activer Insights sur les requĂȘtes est activĂ©e.
- Si ce n'est pas déjà fait, sélectionnez Activer les fonctionnalités Enterprise Plus.
- Sélectionnez Activer le conseiller d'index.
- Cliquez sur Enregistrer.
Désactiver les recommandations du conseiller d'index
Pour désactiver les recommandations du conseiller d'index, procédez comme suit :
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, dĂ©veloppez Insights sur les requĂȘtes.
- Décochez la case Activer le conseiller d'index.
- 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"
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Insights sur les requĂȘtes.
- Les recommandations du conseiller d'index sont affichĂ©es dans la colonne Recommandation de la section RequĂȘtes et tags les plus frĂ©quents.
- (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 :
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Insights sur les requĂȘtes.
- Dans la section RequĂȘtes et tags les plus frĂ©quents, cliquez sur RequĂȘtes.
- 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.
- Cliquez sur une requĂȘte pour en savoir plus sur les recommandations de la requĂȘte sĂ©lectionnĂ©e, y compris les informations suivantes :
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.
CrĂ©er un index recommandĂ© Ă l'aide du tableau de bord "Insights sur les requĂȘtes"
Pour crĂ©er un index recommandĂ© Ă l'aide du tableau de bord "Insights sur les requĂȘtes", procĂ©dez comme suit :
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Insights sur les requĂȘtes.
- Dans le tableau Dimensions principales par charge de la base de donnĂ©es, cliquez sur RequĂȘtes.
- Cliquez sur CrĂ©er des index pour une requĂȘte spĂ©cifique.
- Cliquez sur Copier toutes les commandes d'index. Les commandes
CREATE INDEX
sont copiées dans le presse-papiers. - Connectez-vous à l'instance principale sur la ligne de commande.
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");
Créer un index recommandé à l'aide d'une vue Tableau de base de données
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
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Insights sur les requĂȘtes.
- Dans le tableau Dimensions principales par charge de la base de donnĂ©es, cliquez sur RequĂȘtes.
- Cliquez sur CrĂ©er des index pour une requĂȘte spĂ©cifique.
- Cliquez sur Afficher les requĂȘtes concernĂ©es.
- 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.