🐘

ぽすぐれでindexのサイズを取りたい!

2024/05/30に公開

INDEXサイズを見るクエリ

SELECT tablename, indexname, relpages, pg_relation_size(class.oid) / (1024 * 1024) AS size_mb
FROM pg_indexes idx
LEFT JOIN pg_class class ON class.relname = idx.indexname
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY size_mb DESC
;

※pg_relation_sizeはbyte単位
※PostgreSQLで設定できるパラメータのデフォルト単位は8kBだったりするので混乱しないように。

INDEXサイズの合計を見たい時

フィルタを良しなに設定すればOK

SELECT sum(pg_relation_size(class.oid) / (1024 * 1024)) AS size_mb
FROM pg_indexes idx
LEFT JOIN pg_class class ON class.relname = idx.indexname
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
AND tablename LIKE 'target_table_name_%'
;

参考

https://gushwell.github.io/TIL/PostgreSql/インデックスのサイズを確認する.html

Discussion