列出数据库中不再使用的所有索引,PostgreSQL

时间:2016-10-24 16:37:19

标签: postgresql database-administration

我试图在特定的数据库上找到使用PostgreSQL在9.5版本上不再使用的索引,有人可以帮助我吗?我很感激。

1 个答案:

答案 0 :(得分:2)

以下查询将为您提供相对未使用的索引(idx_scan< 50):

SELECT schemaname || '.' || relname AS table,
       indexrelname AS index,
       pg_size_pretty(pg_relation_size(i.indexrelid)) AS index_size,
       idx_scan as index_scans
FROM pg_stat_user_indexes ui
  JOIN pg_index i ON ui.indexrelid = i.indexrelid
WHERE NOT indisunique 
  AND idx_scan < 50 
  AND pg_relation_size(relid) > 5 * 8192
ORDER BY pg_relation_size(i.indexrelid) / nullif(idx_scan, 0) DESC NULLS FIRST,
      pg_relation_size(i.indexrelid) DESC;