假设您在 9i 上有以下查询:
SELECT /*+ USE_HASH(t2 t3) */
* FROM
table1 t1 -- this has lots of rows
LEFT JOIN table2 t2 ON t1.col1 = t2.col1
AND t1.col2 = t2.col2
LEFT JOIN table3 t3 ON t1.col1 = t3.col1
AND t1.col2 = t3.col2
由于 9i 没有 RIGHT OUTER HASH JOIN,它需要为两个连接对 table1 进行哈希处理。table1
它是否在连接t2
和之间重新散列t3
(即使它使用相同的连接列),或者它是否为两个连接保留相同的散列信息?