Re: Disable result buffering to frontend clients

Поиск
Список
Период
Сортировка
От Richard Huxton
Тема Re: Disable result buffering to frontend clients
Дата
Msg-id 45DD7A8B.3040001@archonet.com
обсуждение исходный текст
Ответ на Disable result buffering to frontend clients  (Konstantinos Krikellas <K.Krikellas@sms.ed.ac.uk>)
Список pgsql-performance
Konstantinos Krikellas wrote:
> Hi,
>
> I am trying to execute some queries in PostgreSQL that produce a large
> number of results and I do not want to display the output (redirect it
> to /dev/null). I have tried the psql client with \o /dev/null option,
> JDBC and libpq functions, but all of them have to buffer totally the
> result before redirecting it. Is there any way to disable result
> buffering, either on the client or on the server side?

Well, you could use a cursor, but that could change the plan (I believe
it favours plans that return the first result quickly).

You could have a function that used FOR-IN-EXECUTE to run a query for
you then just loop through the results, doing nothing. That would keep
everything server-side.

If you really want to duplicate all the query costs except client-side
buffering, the simplest might be to just hack the libpq source to
discard any query results rather than buffering them - shouldn't be too
difficult.

--
   Richard Huxton
   Archonet Ltd

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

Предыдущее
От: Konstantinos Krikellas
Дата:
Сообщение: Disable result buffering to frontend clients
Следующее
От: Gabriel Biberian
Дата:
Сообщение: slow update on 1M rows (worse with indexes)