Re: cursor with hold must be save to disk?

Поиск
Список
Период
Сортировка
От 黄宁
Тема Re: cursor with hold must be save to disk?
Дата
Msg-id CAKgrFs-hFRGKnJQs+oHy4_UquFayyeyiqmHjkSxbAcG0t-Sidw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: cursor with hold must be save to disk?  (Adrian Klaver <adrian.klaver@aklaver.com>)
Список pgsql-general
the Postgresql version is 13.6
and the DECLARE COMMAND IS

declare sdx_3a6c_8 no scroll binary cursor without hold for select "roalkL"."smid","roalkL"."smgeometry" from "public"."roalkL" where "roalkL"."smgeometry" && st_makeenvelope(321673.3153346270555630,3375950.6560412631370127,367212.1915803211741149,3402758.1912380573339760,32649)

the data might be 1GB,and we need get all in about 10 seconds.

Adrian Klaver <adrian.klaver@aklaver.com> 于2023年4月14日周五 23:11写道:
On 4/14/23 04:04, 黄宁 wrote:
> i want to use cursor with hold ,but when I declare a curosr , it takes a
> long time to save the result set to disk. can i save the query state in
> memory? and fetch forward the next result.
>

 From the docs:

https://www.postgresql.org/docs/current/sql-declare.html

A cursor created with WITH HOLD is closed when an explicit CLOSE command
is issued on it, or the session ends. In the current implementation, the
rows represented by a held cursor are copied into a temporary file or
memory area so that they remain available for subsequent transactions.

So I am going to guess the cursor query is holding a large amount of data.

To get a more specific answer you will need to provide:

1) Postgres version.

2) The complete DECLARE command being used.

3) An indication of the amount of data being retrieved.

4) The actual time for a 'long time'.

--
Adrian Klaver
adrian.klaver@aklaver.com

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

Предыдущее
От: Bryn Llewellyn
Дата:
Сообщение: Re: PL/pgSQL's "open cur for execute" provides workarouned... Re: cursors with prepared statements
Следующее
От: Ron
Дата:
Сообщение: Re: Suppress logging of "pg_hba.conf rejects connection for host"