Save many data chunks to file

Started by whiplashover 12 years ago1 messagesgeneral
Jump to latest
#1whiplash
whiplash@bss.org.ua

Hello! I have a table with image data:

/CREATE TABLE images//
//(//
// id serial,//
// image_data bytea,//
// ...//
//);/

This is function for store image data to file:

/CREATE OR REPLACE FUNCTION write_bytea ( p_data bytea, p_filename text )//
//RETURNS void AS//
//$BODY$//
//DECLARE//
// v_oid oid;//
// v_fdesc integer := 0;//
// v_fsize integer := 0;//
//BEGIN//
// v_oid := lo_create ( -1 );//
// v_fdesc := lo_open ( v_oid, CAST ( X'00020000' AS integer ) );//
// v_fsize := lowrite ( v_fdesc, p_data );//
////
// PERFORM lo_export ( v_oid, p_filename );//
// PERFORM lo_close ( v_fdesc );//
// PERFORM lo_unlink ( v_oid );//
//END//
//$BODY$//
//LANGUAGE plpgsql IMMUTABLE;/

Query for saving image:

/SELECT write_bytea ( i.image_data, id::text || '.jpg' )//
//FROM images i;/

My problem: first 30-40 images (~75 KB for one image) save fast but
saving speed of nextimages slows down and slows down. What is wrong?

P.S. I try use it in pgAdmin and in psql, but problem doesn't disappear.