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