无论对于broadcast或者hash分发,数据需要通过进程或者节点之间通信的完成传输,分发的数据越多,消耗的dbcpu越多。并行执行时,数据需要分发,本质上是因为Oracle采用share---everything的集中存储架构,任何数据对每个实例的PX进程都是共享的。为了对hashjoin操作分而治之,切分为N个独立的工作单元(假设DoP=N),必须提前对数据重新分发,数据的分发操作就是并行带来的额外开销。使用full或者partialpartitionwisejoin技术,可以完全消除分发的额外开销,或者把这种开销降到最低。如果hashjoin有一边在连接键上做hash分区