diff --git a/store/postgres/migrations/2023-01-24-192319_chain_size_view/down.sql b/store/postgres/migrations/2023-01-24-192319_chain_size_view/down.sql new file mode 100644 index 00000000000..027c1afb4f9 --- /dev/null +++ b/store/postgres/migrations/2023-01-24-192319_chain_size_view/down.sql @@ -0,0 +1,10 @@ +-- This file should undo anything in `up.sql` + +drop view if exists info.all_sizes; + +create view info.all_sizes as +select * from info.subgraph_sizes +union all +select * from info.table_sizes; + +drop materialized view if exists info.chain_sizes; diff --git a/store/postgres/migrations/2023-01-24-192319_chain_size_view/up.sql b/store/postgres/migrations/2023-01-24-192319_chain_size_view/up.sql new file mode 100644 index 00000000000..1d45be2359d --- /dev/null +++ b/store/postgres/migrations/2023-01-24-192319_chain_size_view/up.sql @@ -0,0 +1,34 @@ + +drop materialized view if exists info.chain_sizes; + +create materialized view info.chain_sizes as +select *, + pg_size_pretty(total_bytes) as total, + pg_size_pretty(index_bytes) as index, + pg_size_pretty(toast_bytes) as toast, + pg_size_pretty(table_bytes) as table + from ( + select *, + total_bytes-index_bytes-coalesce(toast_bytes,0) AS table_bytes + from ( + select nspname as table_schema, relname as table_name, + 'shared'::text as version, + c.reltuples as row_estimate, + pg_total_relation_size(c.oid) as total_bytes, + pg_indexes_size(c.oid) as index_bytes, + pg_total_relation_size(reltoastrelid) as toast_bytes + from pg_class c + join pg_namespace n on n.oid = c.relnamespace + where relkind = 'r' + and nspname like 'chain%' + ) a +) a with no data; + +drop view if exists info.all_sizes; + +create view info.all_sizes as +select * from info.subgraph_sizes +union all +select * from info.chain_sizes +union all +select * from info.table_sizes;