Re: Out of memory error on huge resultset
От | Barry Lind |
---|---|
Тема | Re: Out of memory error on huge resultset |
Дата | |
Msg-id | 3DA5AD73.7090502@xythos.com обсуждение исходный текст |
Ответ на | Out of memory error on huge resultset ("Nick Fankhauser" <nickf@ontko.com>) |
Ответы |
Re: Out of memory error on huge resultset
|
Список | pgsql-jdbc |
Nick, This has been discussed before on this list many times. But the short answer is that that is how the postgres server handles queries. If you issue a query the server will return the entire result. (try the same query in psql and you will have the same problem). To work around this you can use explicit cursors (see the DECLARE CURSOR, FETCH, and MOVE sql commands for postgres). thanks, --Barry Nick Fankhauser wrote: > I'm selecting a huge ResultSet from our database- about one million rows, > with one of the fields being varchar(500). I get an out of memory error from > java. > > If the whole ResultSet gets stashed in memory, this isn't really surprising, > but I'm wondering why this happens (if it does), rather than a subset around > the current record being cached and other rows being retrieved as needed. > > If it turns out that there are good reasons for it to all be in memory, then > my question is whether there is a better approach that people typically use > in this situation. For now, I'm simply breaking up the select into smaller > chunks, but that approach won't be satisfactory in the long run. > > Thanks > > -Nick > > -------------------------------------------------------------------------- > Nick Fankhauser nickf@ontko.com Phone 1.765.935.4283 Fax 1.765.962.9788 > Ray Ontko & Co. Software Consulting Services http://www.ontko.com/ > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html >
В списке pgsql-jdbc по дате отправления: