1. #1
    Membre du Club
    Homme Profil pro
    Consultant SAP
    Inscrit en
    décembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Consultant SAP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2016
    Messages : 59
    Points : 44
    Points
    44

    Par défaut Suppression des index non utilisés

    Bonjour à tous,

    J’utilise cette petite requête pour surveiller le taux d'utilisation des index dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT relname,
    CASE WHEN (seq_scan + idx_scan) != 0
    THEN 100.0 * idx_scan / (seq_scan + idx_scan)
    ELSE 0
    END AS percent_of_times_index_used,
    n_live_tup AS rows_in_table
    FROM pg_stat_user_tables
    ORDER BY n_live_tup DESC;
    Je viens d'avoir des index avec un taux d’utilisation qui tend vers 0%. Est-ce que je peux faire confiance à ce résultat pour supprimer ces index et récupérer d'espace ?

    Merci
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 567
    Points : 40 769
    Points
    40 769
    Billets dans le blog
    1

    Par défaut

    Le problème est que vous utilisez pg_stat_user_tables et ça ce sont les tables, pas les index...

    Vous devez utiliser pg_stat_user_indexes

    Mais attention à la rémanence. SI vous venez de démarrer le collecteur de stats, alors attendez au moins 31 jours.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Membre éprouvé

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    novembre 2014
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2014
    Messages : 536
    Points : 923
    Points
    923
    Billets dans le blog
    2

    Par défaut

    Citation Envoyé par SQLpro Voir le message

    Mais attention à la rémanence. SI vous venez de démarrer le collecteur de stats, alors attendez au moins 31 jours.

    A +
    ça il dépend du manière du redémarrage du serveur

    Quand le serveur s'arrête proprement, une copie permanente des données statistiques est stockée dans le sous-répertoire pg_stat, pour que les statistiques puissent être conservées après un arrêt du serveur. Quand la restauration est réalisée au démarrage du serveur (autrement dit après un arrêt immédiat, un crash du serveur ou lors d'une restauration PITR), tous les compteurs statistiques sont réinitialisés

    https://docs.postgresql.fr/9.4/monitoring-stats.html

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/05/2009, 10h35
  2. indexation non utilisée pour chaînes de caractères
    Par ctobini dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 11/02/2008, 10h43
  3. Suppression des index FullText
    Par balmeyer dans le forum MS SQL-Server
    Réponses: 4
    Dernier message: 16/11/2007, 17h15
  4. [VBA][02]Détection des variables non utilisées
    Par cluis dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/03/2007, 11h20
  5. [Optimisation] index non utilisé et using temporary
    Par jp_rennes dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/10/2006, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo