LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

То на свой вкус и цвет я бы выборку оформлял как курсор. Почему так написано тут — https://postgrespro.ru/docs/postgrespro/10/plpgsql-cursors В самом начале.

У Вас же (скорее всего, утверждать наверняка не берусь), проблема по всей видимости в том, что подвисают запросы при отключении ПК от сети. Т.е., запросы выполнены, а куда результаты девать БД даже не подозревает. И весь результат селекта висит в памяти, пока постгрес не решится его пришибить. С курсором несколько проще должно быть — в таком случае БД их просто пришибёт со всеми результатами выборки, да и дело с концом. Правда, пришибать там почти нечего будет. Ну и памяти под курсор должно сжираться меньше, т.к. по сути, это план запроса, а выборка в клиентскую часть из него идёт на уровне прикладной приблуды. Т.е., выбираем селектом не все данные и сразу, а фетчим их кусками, перемещая курсор. Постгрес и будет выбирать столько, сколько клиент сможет забрать за один раз.

Надеюсь, понятно объяснил?

/* Долбаный ведроид! */

Исправление Moisha_Liberman, :

То на свой вкус и цвет я бы выборку оформлял как курсор. Почему так написано тут — https://postgrespro.ru/docs/postgrespro/10/plpgsql-cursors В самом начале.

У Вас же (скорее всего, утверждать наверняка не берусь), проблема по всей видимости в том, что подвисают запросы при отключении ПК от сети. Т.е., запросы выполнены, а куда результаты девать БД даже не подозревает. И весь результат селекта висит в памяти, пока постгрес не решится его пришибить. С курсором несколько проще должно быть — в таком случае БД их просто пришибёт со всеми результатами выборки, да и дело с концом. Правда, пришибать там почти нечего будет. Ну и памяти под курсор должно сжираться меньше, т.к. по сути, это план запроса, а выборка в клиентскую часть из него идёт на уровне прикладной приблуды. Т.е., выбираем селектор не все данные и сразу, а фетчим их кусками, перемещая курсор. Постгрес и будет выбирать столько, сколько клиент сможет забрать за один раз.

Надеюсь, понятно объяснил?

Исправление Moisha_Liberman, :

То на свой вкус и цвет я бы выборку оформлял как курсор. Почему так написано тут — https://postgrespro.ru/docs/postgrespro/10/plpgsql-cursors В самом начале.

У Вас же (скорее всего, утверждать наверняка не берусь), проблема по всей видимости в том, что подвисают запросы при отключении ПК от сети. Т.е., запросы выполнены, а куда результаты девать БД даже не подозревает. И весь результат селекта висит в памяти, пока постгрес не решится его пришибить. С курсором несколько проще должно быть — в таком случае БД их просто пришибёт со всеми результатами выборки, да и дело с концом. Ну и памяти под курсор должно сжираться меньше, т.к. по сути, это план запроса, а выборка в клиентскую часть из него идёт на уровне прикладной приблуды. Т.е., выбираем селектор не все данные и сразу, а фетчим их кусками, перемещая курсор. Постгрес и будет выбирать столько, сколько клиент сможет забрать за один раз.

Надеюсь, понятно объяснил?

Исходная версия Moisha_Liberman, :

Если честно...

То на свой вкус и цвет я бы выборку оформлял как курсор. Почему так написано тут — https://postgrespro.ru/docs/postgrespro/10/plpgsql-cursors В самом начале.

У Вас же (скорее всего, утверждать наверняка не берусь), проблема по всей видимости в том, что подвисат запросы при отключении ПК от сети. Т.е., запросы выполнены, а куда результаты девать БД даже не подозревает. С курсором несколько проще должно быть — в таком случае БД их просто пришибёт со всеми результатами выборки, да и дело с концом. Ну и памяти под курсор должно сжиматься меньше, т.к. по сути, это план запроса, а выборка в клиентскую часть из него идёт на уровне прикладной приблуды. Т.е., выбираем селектор не все данные, а фетчим их кусками, перемещая курсор.

Надеюсь, понятно объяснил?