2016-04-05 17 views
0

Dosyaları depolamak için kullanmak istediğim basit bir tablo var.PostgreSQL dosyasındaki dosya boyutu sayısı

CREATE TABLE table(
ID INTEGER NOT NULL, 
FILE_NAME TEXT, 
FILE OID 
) 
; 

SQL sorgusuyla dosyaların toplam boyutunu tabloya saymanın bir yolu var mı? Bu fonksiyon olmadan mümkün mü? in the PostgreSQL Wiki

+0

Olası yinelenen (http://stackoverflow.com/questions/10169309/get-size-of-large -object-in-postgresql-sorgu) –

+0

Benim durumumda, sorgu işlevini kullanmayı tercih ediyorum? Mümkün mü? –

cevap

1

yakın ama çok doğru değil.

select file_name, pg_column_size(lo_get(oid)) from files; 

Size boyutu bayt cinsinden verir. oldukça baskı istiyorsanız

: [? PostgreSQL sorguda büyük nesnenin boyutlarını alın] arasında

select file_name, pg_size_pretty(pg_column_size(lo_get(oid))::numeric) from files; 
+0

Teşekkürler, ancak sadece dosyaların boyutlarını masaya koymam gerekiyor. –

+0

pg_relation_size bir lob ile çalışıyor mu? –

2

rzo ilişkilerin boyutu bulunabilir ölçmek için

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; 

Diğer sorgular: Eğer gibi bir şey yapabileceğini toplam disk boyutu (disk kullanımı) ile ilgileniyorsanız