SQL Ready | Базы Данных
Фотография
нажмите — покажем
нажмите — покажем
Настройки только для одного запроса!
Необязательно менять statement_timeout, work_mem или другие параметры для всей сессии. SET LOCAL действует только до конца текущей транзакции.
BEGIN;
SET LOCAL lock_timeout = '500ms';
ALTER TABLE orders
ADD COLUMN source text;
COMMIT;
Так миграция не будет бесконечно ждать блокировку: если таблица занята дольше заданного времени, PostgreSQL завершит операцию ошибкой.
BEGIN;
SET LOCAL work_mem = '512MB';
SELECT customer_id, count(*)
FROM events
GROUP BY customer_id;
COMMIT;
Можно даже точечно дать тяжёлому запросу больше памяти, не увеличивая work_mem для остальных запросов соединения.
🔥 SET LOCAL позволяет тюнить PostgreSQL под конкретную операцию и автоматически возвращает настройки назад после COMMIT или ROLLBACK.
➡️ SQL Ready | #совет
16 · 2.2K ·