要列舉表格大小(不包含全部的 Relation 物件),可以用下列方式查詢:
SELECT schemaname as "Schema", relname as "Table", pg_size_pretty(pg_total_relation_size(relid)) As "Size", pg_size_pretty(pg_total_relation_size(relid) - pg_relation_size(relid)) as "External Size" FROM pg_catalog.pg_statio_all_tables WHERE schemaname <> 'pg_catalog' AND schemaname <> 'information_schema' AND schemaname <> 'sys' AND schemaname <> 'dbo' AND schemaname !~ '^pg_toast' ORDER BY pg_total_relation_size(relid) DESC;
其中
- Schema 為 Schema 名稱
- Table 為表格名稱
- Size 為表格大小
- External Size 為依附在表格的其他物件(Index 或其他物件)的大小:也就是該表格相關的 Index、Primary Key、Sequence ... 等物件的總大小;也就是用 \d+ 列表格裡面比 \d 多列出來的部份。
最後補充,在此用到的 pg_statio_all_tables 為系統統計的 View,pg_stat* 裡面的其中一個功能。
參考:
沒有留言:
張貼留言