由于生产者-消费者模型的限制, 执行计划中可能出现阻塞点.
布隆过滤是如何提高并行执行性能的.
现实世界中, 使用并行执行时最常见的问题.
术语说明:
S: 时间单位秒.
K: 数量单位一千....M: 数量单位一百万, 或者时间单位分钟.
DoP: Degree of Parallelism, 并行执行的并行度.
QC: 并行查询的 Query Coordinator....不同的 table queue 编号, 代表了不同的数据分发.通过 table queue, 我们可以理解 Oracle 并行执行使用生产者-消费者模型的本质:
同一棵 DFO 树中, 最多只有两组 PX...QC 和 PX 进程之间, 两组 PX 进程之间通过 table queue 进行 数据分发, 协同完成整个并行执行计划. 视图 V$PQ_TQSTAT 记录了并行执行过程中, 数据是如何 分发的....SQL 的执行顺序如下:
以数据库地址区间为单位, 蓝色的 PX 进程并行扫描 hash join 左边的 lineorder_hash32(第 7 行), 因为 DoP 是分区数的两倍, 每个分区由两个蓝色