Re: streaming result sets: progress

From: Nic Ferrier <nferrier(at)tapsellferrier(dot)co(dot)uk>
To: Haris Peco <snpe(at)snpe(dot)co(dot)yu>
Cc: Barry Lind <blind(at)xythos(dot)com>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: streaming result sets: progress
Date: 2002-11-20 20:08:55
Message-ID: 87n0o49f6w.fsf@pooh-sticks-bridge.tapsellferrier.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Haris Peco <snpe(at)snpe(dot)co(dot)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

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Haris Peco 2002-11-20 21:00:40 Re: streaming result sets: progress
Previous Message Barry Lind 2002-11-20 19:22:34 Re: forName finds Driver but getConnection doesn't