Oracle 课程-性能优化第9课 并行.pdf
DATAGURU专业数据分析网站 2012.2012.1111.15 15 性能优化性能优化 第第九课九课 并行并行2DATAGURU专业数据分析网站2012.11.122012.11.12法律声明法律声明【声明声明】本视频和幻灯片为炼数成金网络课程的教本视频和幻灯片为炼数成金网络课程的教学资料,所有资料只能在课程内使用,不得在课学资料,所有资料只能在课程内使用,不得在课程以外范围散播,违者将可能被追究法律和经济程以外范围散播,违者将可能被追究法律和经济责任。责任。课程详情访问炼数成金培训网站课程详情访问炼数成金培训网站http:/http:/2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28什么是并行什么是并行 将一件工作分成很多块,分别由不同的进程来执行,最后将结果合并。2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的应用场景并行的应用场景 OLAP 数据仓库 整块的数据读取操作FTSIFFS 并行执行高效的要素:充足的系统资源待处理的数据分布均匀2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的机制并行的机制用户连接到数据库User启动相应的server process当用户发出并行查询请求时,server porcess变成并行协调进程(qc)。并行进程通过消息和QC进程通信。QC 负责分发任务和接收整合数据。每一个并行进程负责自己分配的工作。2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的机制并行的机制2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的机制并行的机制2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的机制并行的机制2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.282013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的机制并行的机制Parallel Servers Parallel Servers 作了几乎全部的工作作了几乎全部的工作Query CoordinatorQuery CoordinatorIDIDIDIDOperationOperationOperationOperationName Name Name Name TQTQTQTQIN-OUTIN-OUTIN-OUTIN-OUTPQ PQ PQ PQ DistributionDistributionDistributionDistribution0 0SELECT STATEMENTSELECT STATEMENT 1 1 PX COORDINATOR PX COORDINATOR 2 2 PX SEND QC RANDOM PX SEND QC RANDOM Q1,01Q1,01P-SP-S3 3 HASH JOIN HASH JOIN Q1,01Q1,01PCWPPCWP4 4 PX RECEIVEPX RECEIVE Q1,01Q1,01PCWPPCWP5 5 PX SEND BROADCAST PX SEND BROADCAST Q1,01Q1,01P-PP-PBROADCASTBROADCAST6 6 PX BLOCK ITERATOR PX BLOCK ITERATOR Q1,01Q1,01PCWPPCWP7 7 TABLE ACCESS FULL TABLE ACCESS FULL CUSTOMERSCUSTOMERSQ1,01Q1,01PCWPPCWP8 8 PX BLOCK ITERATOR PX BLOCK ITERATOR Q1,01Q1,01PCWPPCWP9 9 TABLE ACCESS FULL TABLE ACCESS FULL SALESSALESQ1,01Q1,01PCWPPCWPSELECT c.cust_name,s.purchase_date,s.amountFROM sales s,customers cWHERE s.cust_id=c.cust_id;2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划操作操作说明说明PX BLOCK ITERATORThis operation is typically the first step in a parallel pipeline.The BLOCK ITERATOR breaks up the table into chunks that are processed by each of the parallel servers involved.PX SENDPX SEND operations simply indicate that data is being sent from one parallel process to another.PX RECEIVEPX RECEIVE operations indicate the data being received by one parallel process from another.PX SEND QCThis is a send operation to the parallel query co-coordinator process.PX COORDINATORThis step simply indicates that the parallel query co-coordinator is receiving the data from the parallel streams and returning it to the SQL statement.2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划RANGE Rows are distributed based on ranges of values.This is typical when sort operations are parallelized.HASHRows are distributed to parallel query slaves based on a hash of the value concerned.This is suitable for joins and HASH GROUP BY operations and generally ensures a more even distribution of rows than for RANGE operations.RANDOMRows are randomly assigned to parallel query slaves.ROUND ROBINRows are distributed one at a time in a circular fashion,just as you would deal cards in a game of poker.操作操作说明说明2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行的执行计划并行的执行计划操作操作说明说明PARALLEL_COMBINED_WITH_PARENT(PCWP)Parallel execution;Output of step goes to next step in same parallel process.PARALLEL_COMBINED_WITH_CHILD(PCWC)Parallel execution.Input of step comes from prior step in same parallel process.2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行与性能并行与性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行与性能并行与性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行与性能并行与性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行与性能并行与性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行与性能并行与性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行度并行度 所谓并行度,就是Oracle在进行并行处理时,会启动几个并行进程来同时执行。并行度的设定对象属性hint2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行度并行度2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行度和性能并行度和性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行度和性能并行度和性能2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行度的设置并行度的设置 并行执行系统资源关系非常密切 系统通常是动态改变的 所以,方法是深入了解并行的机制+测试=最好的效果2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28如何获得如何获得SQLSQL的并行度的并行度 V$PX_SESSION.degree V$PQ_TQSTAT2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28如何获得如何获得SQLSQL的并行度的并行度 10391 事件parallel.txt2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行相关的初始化参数并行相关的初始化参数 PARALLEL_ADAPTIVE_MULTI_USER PARALLEL_MAX_SERVERS PARALLEL_MIN_SERVERS ARALLEL_AUTOMATIC_TUNING2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.2811G11G新的并行参数新的并行参数 PARALLEL_DEGREE_LIMIT PARALLEL_DEGREE_POLICY PARALLEL_FORCE_LOCAL PARALLEL_MIN_TIME_THRESHOLD PARALLEL_SERVERS_TARGET PARALLEL_EXECUTION_MESSAGE_SIZE2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.2811GR211GR2的自动并行机制的自动并行机制 PARALLEL_DEGREE_POLICYmanual(default)limitedauto2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28 PARALLEL_DEGREE_POLICY=MANUAL11GR211GR2的自动并行度的自动并行度2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28 PARALLEL_DEGREE_POLICY=LIMITED 11GR211GR2的自动并行机制的自动并行机制2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28 PARALLEL_DEGREE_POLICY=AUTO11GR211GR2的自动并行机制的自动并行机制2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28In-Memory Parallel Execution(11GR2)In-Memory Parallel Execution(11GR2)之前的并行执行方式2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28In-Memory Parallel Execution(11GR2)In-Memory Parallel Execution(11GR2)11GR22013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28In-Memory Parallel Execution(11GR2)In-Memory Parallel Execution(11GR2)SQLstatementDetermine the size of the table being looked atTable is extremely LargeAlways use direct read from diskTable is a good candidate for In-Memory Parallel ExecutionFragments of Table are read into each nodes buffer cacheOnly parallel server on the same RAC node will access each fragmentRead into the buffer cache on any nodeTable is extremely small 2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.28并行其它的用途并行其它的用途 并行DDL操作CREATE TABLE.AS SELECT ALTER TABLE.MOVE PARTITION ALTER TABLE.SPLIT PARTITION ALTER TABLE.COALESCE PARTITION 并行DML(分区表)updatedeletemerge 2013-1-19DATAGURU专业数据分析网站2012.5.282012.5.2840DATAGURU专业数据分析网站2012.11.122012.11.12炼数成金逆向收费式网络课程炼数成金逆向收费式网络课程DataguruDataguru(炼数成金)是专业数据分析网站,提供教育,媒体,内容,社区,出版,(炼数成金)是专业数据分析网站,提供教育,媒体,内容,社区,出版,数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收数据分析业务等服务。我们的课程采用新兴的互联网教育形式,独创地发展了逆向收费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发费式网络培训课程模式。既继承传统教育重学习氛围,重竞争压力的特点,同时又发挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使挥互联网的威力打破时空限制,把天南地北志同道合的朋友组织在一起交流学习,使到原先孤立的学习个体组合成有组织的探索力量。并且把原先动辄成千上万的学习成到原先孤立的学习个体组合成有组织的探索力量。并且把原先动辄成千上万的学习成本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架本,直线下降至百元范围,造福大众。我们的目标是:低成本传播高价值知识,构架中国第一的网上知识流转阵地。中国第一的网上知识流转阵地。关于逆向收费式网络的详情,请看我们的培训网站关于逆向收费式网络的详情,请看我们的培训网站 http:/http:/DATAGURU专业数据分析网站ThanksThanksFAQ时间