本文介绍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;