Re: experience sharing: select query returns more records than necessary

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: experience sharing: select query returns more records than necessary
Дата
Msg-id 4975C4CA.5080302@opencloud.com
обсуждение исходный текст
Ответ на Re: experience sharing: select query returns more records than necessary  ("Dave Cramer" <pg@fastcrypt.com>)
Ответы Re: experience sharing: select query returns more records than necessary  (Kent Tong <kent@cpttm.org.mo>)
Список pgsql-jdbc
Dave Cramer wrote:
>
>
>
>     In contrast, if I issue the query on the DB server in the psql
>     console, it
>     returns records almost immediately. Finally I found that it is
>     because the
>     postgreSQL JDBC driver is pre-fetching a lot (all?) of the records.
>     To fix
>     the problem, one can call setFetchSize(50) on the statement.
>
> psql doesnt do anything any differently. It just doesn't have to create
> objects, and you are likely local to the network.

Well, not exactly. The difference is that psql begins outputting as soon
as the first result arrives, while the driver (in non-cursor mode)
gathers the entire resultset before returning anything to the application.

So while the overall query execution time is going to be similar
(excepting object creation, etc), the query *latency* is higher with JDBC.

Though, I would suggest that if you really only care about the first 50
results, then put a LIMIT 50 in your query! The query planner may come
up with a better plan if you do that, too ..

If you want to "stream" the whole resultset, then fetchsize is certainly
the way to do it.

-O

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: "Dave Cramer"
Дата:
Сообщение: Re: experience sharing: select query returns more records than necessary
Следующее
От: Kent Tong
Дата:
Сообщение: Re: experience sharing: select query returns more records than necessary