Database 数据库查询优化器中的左深连接树及其并行性

Database 数据库查询优化器中的左深连接树及其并行性,database,join,query-optimization,Database,Join,Query Optimization,我在文献中读到,就并行性而言,左深连接树不如右深连接树。 理由如下 X / \ / \ X r6 / \ / \ X r5 / / \ r0 r1 在这个连接树中,根据文献,哈希连接将按照以下方式执行: 1. HashTable on r0 and then probe using r1 2. HashTable on r0 X r1 then ha

我在文献中读到,就并行性而言,左深连接树不如右深连接树。 理由如下

          X
         / \
        /   \
       X     r6
      / \
     /   \
    X    r5
  /  
 /     \
r0     r1
在这个连接树中,根据文献,哈希连接将按照以下方式执行:

1. HashTable on r0 and then probe using r1
2. HashTable on r0 X r1 then hash probe using r5
3. HashTable on r0 X r1 X r5 and hash probe using r6
但是一种简单的并行连接方式是

1. HashTable on r1, r5, r6 independently
2. HashProbe r1 using r0, use result to hash probe r5 and then r6
   This can be nicely pipelined.
为什么不能这样做呢? 我错过了什么明显的东西吗

参考: (转到第18页)


我在书中也读到了类似的内容:

我想我了解了它的工作原理,我读过的所有地方都假设HashBuild操作总是发生在左边。
这就解释了为什么右深连接树比左深连接树有更好的并行执行计划。

我想我了解了它的工作原理,我读过的所有地方都假设HashBuild操作总是发生在左关系上。 这解释了为什么右深连接树比左深连接树有更好的并行执行计划