sql >> Database teknologi >  >> RDS >> PostgreSQL

Opnå størrelsen af ​​lobject i PostgreSQL

Denne funktion har været effektiv nok for mig, du vil måske prøve den med dine data:

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'; 

En anden mulighed er select sum(length(data)) from pg_largeobject where loid=the_oid men det kræver læseadgang til pg_largeobject, som jeg tror er blevet undertrykt i pg 9.0+ for ikke-superbrugere




  1. Hvorfor ville Magento undlade at redde en kunde efter at have genereret et ID?

  2. Hvorfor er denne INNER JOIN/ORDER BY mysql-forespørgsel så langsom?

  3. Få Hierarki-niveau og alle nodereferencer på Oracle

  4. Sphinx Search / MySQL finde de mest almindelige ord