我有這個簡單的表,我想用它來存儲文件。在PostgreSQL中計算文件大小
CREATE TABLE table(
ID INTEGER NOT NULL,
FILE_NAME TEXT,
FILE OID
)
;
有什麼辦法用SQL查詢來計算表中的文件總大小?這可能沒有功能?
我有這個簡單的表,我想用它來存儲文件。在PostgreSQL中計算文件大小
CREATE TABLE table(
ID INTEGER NOT NULL,
FILE_NAME TEXT,
FILE OID
)
;
有什麼辦法用SQL查詢來計算表中的文件總大小?這可能沒有功能?
如果你有興趣在磁盤總容量(磁盤使用情況),你可以這樣做:
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_relation_size(C.oid)) AS "size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_relation_size(C.oid) DESC
LIMIT 20;
其他查詢來衡量關係的大小,可以發現in the PostgreSQL Wiki
謝謝,但我只需要將文件的大小放入表格中即可。 –
pg_relation_size是否與高球一起工作? –
rzo接近但不完全正確。
select file_name, pg_column_size(lo_get(oid)) from files;
以字節爲單位給出您的大小。
如果你想漂亮的印刷:?獲取PostgreSQL的查詢大對象的大小]
select file_name, pg_size_pretty(pg_column_size(lo_get(oid))::numeric) from files;
的可能的複製(http://stackoverflow.com/questions/10169309/get-size-of-large -object-in-postgresql-query) –
在我的情況下,我更喜歡使用查詢不是功能?這可能嗎? –