在Postgres 11.x中,是否可以为特定交易配置query planner parameters?
对于特定查询,我想:
SET ENABLE_NESTLOOP TO FALSE;
... run special query
SET ENABLE_NESTLOOP TO TRUE;
答案 0 :(得分:1)
是的,可以使用SET LOCAL
轻松完成:
BEGIN;
SET LOCAL enable_nestloop = off;
SELECT ...;
COMMIT;
像the documentation这样说:
SET LOCAL
的影响仅持续到当前事务结束为止,无论是否提交。
答案 1 :(得分:0)
此信息在SET的文档中进行了描述
如果在稍后中止的事务中发出SET(或等效的SET SESSION),则在回滚该事务时SET命令的效果会消失。一旦完成周围的事务,效果将一直持续到会话结束,除非被另一个SET覆盖。
尤其可以使用SET LOCAL
SET LOCAL的影响仅持续到当前事务结束为止,无论是否提交。