JTYPE
指定联接算法是哈希联接还是合并联接。
使用 JTYPE 提示以指定优化器用来联接表数据的算法。如果指定算法不可行,优化器将忽略提示并发出警告。
语法
JOIN /*+JTYPE(join-type)*/
参数
- 联接类型
- 以下几项之一:
-
H
:哈希联接 -
M
:合并联接仅在联接列的输入均排序的情况下有效,否则 Vertica 会忽略并发出警告。优化器依靠查询或 DDL 来验证输入数据是否已排序,而不是依靠数据的实际运行时顺序。 -
FM
:强制合并联接合并前,优化器会重新针对联接输入进行排序。联接列必须是相同的类型、精度或小数位数,但字符串列可以是不同的长度。
FM
的值仅对简单的联接状态有效。例如:=> SELECT /*+SYNTACTIC_JOIN*/ * FROM x JOIN /*+JTYPE(FM)*/ y ON x.c1 = y.c1;
-
要求
-
包含 JTYPE 提示的查询必须也包含 SYNTACTIC_JOIN 提示。否则,优化器会忽略 JTYPE 提示并抛出一条警告。
-
联接语法必须符合 ANSI SQL-92 联接约定。