Aller au contenu

Index inutilisés

La requête suivante détecte les index apparemment inutilisés, selon la vue pg_stat_user_indexes.

Elle est extraite du module pgcluu_collectd de pgCluu de [Gilles https://darold.net/).

Attention

Cette liste est à prendre avec précaution.

Elle dépend de la fraîcheur des statistiques d’activité et de leur date de réinitialisation.

Certains index rarement utilisés peuvent être vitaux pour des requêtes rarement passées (par exemple un rapport annuel).

SELECT 
  date_trunc('seconds', now()), 
  current_database(), 
  schemaname, 
  relname, 
  indexrelname, 
  pg_get_indexdef(pg_stat_user_indexes.indexrelid) 
FROM 
  pg_stat_user_indexes 
  INNER JOIN pg_index ON pg_index.indexrelid = pg_stat_user_indexes.indexrelid 
WHERE 
  NOT indexrelname ILIKE 'fki%%' 
  AND NOT indisprimary 
  AND NOT indisunique 
  AND idx_scan = 0 
ORDER BY schemaname, relname, indexrelname;