Re: streaming result sets: progress - Mailing list pgsql-jdbc

From Nic Ferrier
Subject Re: streaming result sets: progress
Date
Msg-id 87n0o49f6w.fsf@pooh-sticks-bridge.tapsellferrier.co.uk
Whole thread Raw
In response to Re: streaming result sets: progress  (Haris Peco <snpe@snpe.co.yu>)
Responses Re: streaming result sets: progress  (Haris Peco <snpe@snpe.co.yu>)
List pgsql-jdbc
Haris Peco <snpe@snpe.co.yu> writes:

> Yes, proccess increase with result from server and diferent is that
> C request less memory - in C we can execute big qyery than Java
> I can't believe that we must complete query in memory, but it is true
> Excuse me

If you look at the implementation of the libpq library you'll see
that it's exactly the same as the java one: the query is done and
then all the rows are retrieved and kept in memory.

If you're able to do it in C it's because C has slightly more
efficient memory handling than Java does. It must also mean that your
machine has just too little memory for your Java app, if I were you
I'd just buy some more RAM as a quick fix to your problem.

Another alternative is to create 2 connections and use a cursor in
one. Or to package your update operations as stored procs operating
over the large results.



Nic

pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: forName finds Driver but getConnection doesn't
Next
From: Haris Peco
Date:
Subject: Re: streaming result sets: progress