Конфигурация метода планирования для каждой транзакции - PullRequest
0 голосов
/ 10 января 2019

В Postgres 11.x есть способ настроить параметры планировщика запросов для конкретной транзакции?

Для конкретного запроса я бы хотел:

SET ENABLE_NESTLOOP TO FALSE;
... run special query
SET ENABLE_NESTLOOP TO TRUE;

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Да, это легко сделать с помощью SET LOCAL:

BEGIN;
SET LOCAL enable_nestloop = off;
SELECT ...;
COMMIT;

Как Документация говорит:

Эффекты SET LOCAL действуют только до конца текущей транзакции, независимо от того, совершены они или нет.

0 голосов
/ 10 января 2019

Эта информация описана в документации для SET

Если SET (или, что то же самое, SET SESSION) выдается в транзакции, которая позднее прерывается, эффекты команды SET исчезают при откате транзакции. Как только окружающая транзакция будет зафиксирована, эффекты будут сохраняться до конца сеанса, если они не будут переопределены другим SET.

В частности, вы можете использовать SET LOCAL

Эффекты SET LOCAL действуют только до конца текущей транзакции, независимо от того, зафиксированы они или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...