与联接操作相关的 Hint 包括 USE_MERGE Hint、NO_USE_MERGE Hint、USE_HASH Hint、NO_USE_HASH Hint、USE_NL Hint、NO_USE_NL Hint、USE_BNL Hint 和 NO_USE_BNL Hint。 USE_MERGE Hint USE_MERGEHint 指示优化器使用一个sort-merge联接将每个指定的表与另一个行资源联接起来,并将所指定的表作为右表。
分布式执行计划可以使用 Hint 管理,以提高 SQL 查询性能。 分布式执行框架支持的 Hint 包括ORDERED、LEADING、USE_NL、USE_HASH和USE_MERGE等。 PARALLEL Hint 指定分布式执行的并行度。启用 3 个 Worker 并行执行扫描,如下例所示: obclient>SELECT/*+ PARALLEL(3) */MAX(L_QUANTITY)FROMtbl1; ...
4 号 NLJ 算子的左支返回的行数(merge join 结果的行)和右支返回的行数(btr 通过 8 号算子中 filter 过滤之后的行)如果没有明显的大小表关系(左支行数 / 右支行数 < 20),则意味着 4 号算子选择 Hash Join 的方式会比选择 NLJ 的方式更优。那么就可以通过使用hint/*+ leading(bbtr cte btr) use_...
3. 使用 HINT 干预 JOIN 算法 使用如下 HINT 都不生效(并且尝试了 Outline Data 中的写法): /*+ use_hash(A B)*/ /*+ USE_HASH(@"SEL$1" ("VIEW1"@"SEL$1" )) */ /*+ NO_USE_NL_AGGREGATION */ 执行计划显示 Used Hint 部分都为空,说明 HINT 无法生效,原因未知: Used Hint: --- /*+...
Used Hint: --- /*+ USE_HASH(@"SEL$2" ("aaaa.A"@"SEL$2" )) USE_HASH(@"SEL$3" ("aaaa.A"@"SEL$3" )) NO_REWRITE */ Outline Data: --- /*+ BEGIN_OUTLINE_DATA LEADING(@"SEL$2" ("aaaa.B"@"SEL$2" "aaaa.A"@"SEL$2" )) USE_HASH...
mknull2023 年3 月 20 日 11:24#4 hint语法写错了吧,试试 explain select /*+ NO_USE_HASH_AGGREGATION */ DISTINCT c1 from t1\G; 君野2023 年3 月 20 日 11:31#5 hint语法有误,参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001581607...
OceanBase 特有的 Hint USE_BNL INDEX Hint NO_USE_BNL Hint FULL Hint USE_PX Hint LEADING Hint NO_USE_PX Hint ORDERED Hint USE_JIT Hint USE_MERGE Hint NO_USE_JIT Hint NO_USE_MERGE Hint USE_HASH_AGGREGATION Hint USE_HASH Hint NO_USE_HASH_AGGREGATION Hint ...
既然被驱动表不走索引,基于代价的比较,优化器为什么没有选择更高效的 HASH ANTI JOIN? 问题得一个一个看,先分析第二个问题。 3. 使用 HINT 干预 JOIN 算法 使用如下 HINT 都不生效(并且尝试了 Outline Data 中的写法): /*+ use_hash(A B)*/ ...
这是一个普通得不能再普通的两表关联查询,但是,线上执行时间为38s。 处理方法也很简单: 直接用 hint让两个表走nested loops joins,可以保证该SQL在40毫秒内执行成功。 select /*+ use_nl(lxr phone) */ phone.id_ id, phone.lxr_id_ contactId, ...
OceanBase云平台产品说明书 OceanBase 云平台(产品名称) 声明 文档版本:20150122(发布日期)I 产品版本:V1.0.0(软件版本)文档版本:20150122(发布日期)OBCP 实验指导手册 |产品版本:V 0.8.8