解释Oracle查询计划中的HASH JOIN

Bra*_*vic 5 sql oracle sql-execution-plan

当我在Oracle查询计划中看到类似的内容时:

HASH JOIN
    TABLE1
    TABLE2
Run Code Online (Sandbox Code Playgroud)

这两个表中的哪一个正在被散列

Oracle文档引用了一个通常被散列的"较小"表,但是当在查询计划中显示时,是否保证散列表总是处于特定位置(顶部或底部子节点)?

kro*_*lko 5

示例9-3 JOIN文档中的 Hash Joins涉及散列连接的解释计划.该例子中有一句话说:

在散列连接中,散列表的数据集始终首先出现在操作列表中(步骤2).

一句话; Oracle不会散列较小的表,而是散列较小的数据集.