使用连接方法伪指令影响表在 GBase 8s 扩展的连接查询中如何连接。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
comments | 用于记录伪指令的文本 | 必须出现在注释符号之间 | 字符串 |
使用逗号或空格分隔括号内置的元素。
下表描述了每个连接方法伪指令。
连接方法伪指令优先于 OPTCOMPIND 配置参数强制的连接方法。
和 USE_HASH 伪指令一起使用,这个关键字表示指定的表用来构造一个哈希表,和 AVOID_HASH 伪指令一起使用,这个关键字表示指定的表不用来构造哈希表。
和 USE_HASH 伪指令一起使用,这个关键字表示指定的表用来探测一个哈希表。和 AVOID_HASH 伪指令一起使用,这个关键字表示指定的表不用来探测一个哈希表。只要至少有一个表没有指定为 PROBE,就可以指定多个探测表。
为使优化程序找到有效的连接查询计划,必须至少为在连接中涉及的每个表运行 UPDATE STATISTICS LOW ,以提供适当的开销估计。否则,优化程序可能会选择将整个表广播给所有实例,即使表非常大。
如果没有指定 /BUILD 关键字也没有指定 /PROBE 关键字,那么优化程序使用成本估计来确定表的作用。
SELECT /*+ USE_HASH (dept /BUILD) The optimizer must use dept to construct a hash table */ name, title, salary, dname FROM emp, dept, job WHERE loc = 'Phoenix' AND emp.dno = dept.dno AND emp.job = job.job;
您为符合 ANSI 连接查询的指定的连接方法优化程序伪指令会被忽略,但是它在解释输出文件中的 Directives Not Followed 下列出。