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