запросов, например максимум 1 минуту.
Стоит использовать параметры как statement_timeout (https://postgrespro.ru/docs/postgrespro/10/runtime-config-client#GUC-STATEMENT-TIMEOUT),
так и idle_in_transaction_session_timeout (https://postgrespro.ru/docs/postgrespro/10/runtime-config-client#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT)?
Или есть еще какие способы?
Просто смущает, что в доке указано:
"Устанавливать значение statement_timeout в postgresql.conf не рекомендуется, так как это повлияет на все сеансы."
И натыкался на информацию, что "Важно не устанавливать statement_timeoutв postgresql.conf, если вы не хотите развлечений."
Но клиент не хочет пока оптимизировать запросы на стороне приложения, а хочет отрубать все, что работает дольше 1 минуты.
Я здесь уже неоднократно писал: подумайте, что сделает клиентская программа, когда ей запрос вернёт "ошибка. таймаут". Например, она может в случае любой ошибки повторять запрос. Это вам будет развлечение. Может оставить базу в плохом состоянии (транзакции не в транзакции). А может просто директор скомандовать "получить этот отчёт любой ценой", а рукоятки, чтобы разрешить долгие запросы вы не сделали.
т.е. правильно я понимаю, что самое страшное, что можно получить, в случае жесткого ограничения с помощью statement_timeout в конфиге постгреса - это невозможность выполнить действительно нужный и долгий запрос и возможные ошибки, которые возникнут в самом приложении?
Обсуждают сегодня