2
我用下面的代碼來確定每個表的磁盤大小在我的數據庫PostgreSQL中:確定的PostgreSQL表的實際文件名的文件系統級別
SELECT pg_size_pretty(pg_total_relation_size('"my_schema"."my_table"'));
我想,我應該找每個表的實際文件名以獲得確切的磁盤大小。有人知道如何確定文件系統級別的實際文件名嗎?
我用下面的代碼來確定每個表的磁盤大小在我的數據庫PostgreSQL中:確定的PostgreSQL表的實際文件名的文件系統級別
SELECT pg_size_pretty(pg_total_relation_size('"my_schema"."my_table"'));
我想,我應該找每個表的實際文件名以獲得確切的磁盤大小。有人知道如何確定文件系統級別的實際文件名嗎?
事情是這樣的:
select t.relname, current_setting('data_directory')||'/'||pg_relation_filepath(t.oid)
from pg_class t
join pg_namespace ns on ns.oid = t.relnamespace
where relkind = 'r'
and ns.nspname = 'public';
我不是100%,這將顯示正確的路徑,如果多個表都有涉及。
這將識別關係主叉的第一部分。它不會包含其他分支(如可見性圖),TOAST數據或索引 - 只是第一個堆文件。當該文件達到1MB時,將使用「.1」,「.2」等後綴創建其他文件。 – kgrittn
@kgrittn我擁有450MB大小的文件。你確定Postgres每1 ** MB **創建一個新文件嗎? –
糟糕。當我這樣做時,我討厭它。這確實是每段1 ** GB **。但是,這一觀點認爲,爲了評估表格的大小,我們需要考慮的不僅僅是這個答案所指出的一個文件。 – kgrittn