标签归档:parallel

Exadata上一次POC的记录——PDML

下面的一次POC中的某2个语句的执行,可以看到除了CTAS创建的表名称不同,其余都是一样: 同样的都是Exadata x3-2,同样的环境(表结构,数据等等),但是执行效率却大相径庭: 从执行计划上看,SQL1执行时间了44秒: 1,在select阶段,所有Slave进程以直接路径读的方式并行的从cell上读取数据 2,所有Slave进程并行的将读取的数据发送给Query Coordinator,然后仍然以直接路径读取的方式并行的写入到数据文件 3,Query Coordinator进程从并行数据流中接收数据,并在所有并行写入结束后,将执行结果(Table created)反馈给SQL1 从执行计划上看,SQL1执行时间了9.3分钟: 1,在select阶段,所有Slave进程以直接路径读的方式并行的从cell上读取数据 2,所有Slave进程并行的将读取的数据发送给Query Coordinator 3,Query Coordinator进程等待所有Slave进程都执行结束后,将接收到的数据以直接路径度的方式写入到数据文件,将执行结果(Table created)反馈给SQL2 这个2个SQL的区别就在于PDML需要单独enable,缺省的只有SELECT会采用parallel。 也就是说,在执行SQL1之前,我执行了: alter session force parallel query; alter session force parallel dml; alter session force parallel ddl; . 而在执行SQL2的会话中,我没有enable PDML。 .

发表在 POC和性能调整 | 标签为 , , | 一条评论