本文介绍PolarDB O引擎的OPT_PARAM Hint。

如果通过传统的方式指定特定参数值,通常是在数据库级别、会话级别或者用户级别下进行的,无法精确控制执行特定SQL时使用的参数值。此时可以使用OPT_PARAM Hint,实现在SQL级别指定特定参数值,将参数的修改范围控制在SQL级别,仅在该SQL中有效。

当前OPT_PARAM Hint支持指定3个参数的值:

  • enable_hashjoin
  • enable_mergejoin
  • enable_bitmapscan

语法

SELECT /*+ opt_param('enable_hashjoin', 'off'),
opt_param('enable_mergejoin', 'off') */ ...;

示例

EXPLAIN (COSTS OFF) SELECT * FROM sampletable WHERE x < 423;
EXPLAIN (COSTS OFF) SELECT /*+ opt_param('enable_bitmapscan', 'off') */ * FROM sampletable WHERE x < 423;
EXPLAIN (COSTS OFF) SELECT /*+ opt_param('enable_mergejoin', 'off') */ tt1.*, tt2.* FROM tt1 JOIN tt2 on tt1.joincol = tt2.joincol;
EXPLAIN (COSTS OFF) SELECT/*+ opt_param('enable_hashjoin', 'on') */ tt1.*, tt2.* FROM tt1 JOIN tt2 on tt1.joincol = tt2.joincol;