Postgresql Duplicate İndex Tespiti

Postgresql duplicate index kavramından önce postgreSQL de index nedir ne için kullanılır ve çeşitleri nelerdir ve bu çeşitleri ile ilgili bilgileri diğer yazılarımda paylaşmıştım bu yazılarımı okumanızı tavsiye ederim. Bu yazımda postgresql de aynı kolonlara ait  oluşturulan indexleri  tespit etmek ve bunların önüne geçerek hem sorgu performansı ve hem de gereksiz disk alanın önüne geçebiliriz.

SELECT pg_size_pretty(sum(pg_relation_size(idx))::bigint) as indexsize,
       (array_agg(idx))[1] as index1name, (array_agg(idx))[2] as index2name,
       (array_agg(idx))[3] as index3name, (array_agg(idx))[4] as index4name
FROM (
    SELECT indexrelid::regclass as idx, (indrelid::text ||E'\n'|| indclass::text ||E'\n'|| indkey::text ||E'\n'||
                                         coalesce(indexprs::text,'')||E'\n' || coalesce(indpred::text,'')) as key
    FROM PG_INDEX) sub
GROUP BY key HAVING count(*)>1
ORDER BY sum(pg_relation_size(idx)) DESC;

Loading