PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Uzyskiwanie rozmiaru lobject w PostgreSQL

Ta funkcja jest dla mnie wystarczająco wydajna, możesz wypróbować ją na swoich danych:

CREATE OR REPLACE FUNCTION lo_size(oid) RETURNS integer 
AS $$ 
declare 
 fd integer; 
 sz integer; 
begin 
 fd = lo_open($1, 262144);
 if (fd<0) then
   raise exception 'Failed to open large object %', $1;
 end if;
 sz=lo_lseek(fd,0,2);
 if (lo_close(fd)!=0) then
   raise exception 'Failed to close large object %', $1;
 end if;
 return sz;
end; 
$$ LANGUAGE 'plpgsql'; 

Inną opcją jest select sum(length(data)) from pg_largeobject where loid=the_oid ale wymaga dostępu do odczytu do pg_largeobject, który moim zdaniem został stłumiony w pg 9.0+ dla osób niebędących superużytkownikami




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. unikalne ograniczenie typu danych Bytea na Postgresql

  2. Zdobycie wszystkich budynków w zasięgu 5 mil od określonych współrzędnych

  3. Przeprowadź iterację przez klientów w 12-miesięcznym okresie kroczącym i sprawdź, czy klient nie zamawiał w ciągu ostatnich 12 miesięcy

  4. Postgres - KRYTYCZNY:pliki bazy danych są niezgodne z serwerem

  5. Jak wybrać id z maksymalną grupą dat według kategorii w PostgreSQL?