并行 chapter 7
- 格式:ppt
- 大小:1.28 MB
- 文档页数:63
oracle并⾏模式(Parallel)1.⽤途强⾏启⽤并⾏度来执⾏当前SQL。
这个在Oracle 9i之后的版本可以使⽤,之前的版本现在没有环境进⾏测试。
也就是说,加上这个说明,可以强⾏启⽤Oracle 的多线程处理功能。
举例的话,就像电脑装了多核的CPU,但⼤多情况下都不会完全多核同时启⽤(2核以上的⽐较明显),使⽤parallel说明,就会多核同时⼯作,来提⾼效率。
但本⾝启动这个功能,也是要消耗资源与性能的。
所有,⼀般都会在返回记录数⼤于100万时使⽤,效果也会⽐较明显。
2.语法/*+parallel(table_short_name,cash_number)*/这个可以加到insert、delete、update、select的后⾯来使⽤(和rule的⽤法差不多,有机会再分享rule的⽤法)开启parallel功能的语句是:alter session enable parallel dml;这个语句是DML语句哦,如果在程序中⽤,⽤execute的⽅法打开。
3.实例说明⽤ERP中的transaction来说明下吧。
这个table记录了所有的transaction,⽽且每天数据量也算相对⽐较⼤的(根据企业⾃⾝业务量⽽定)。
假设我们现在要查看对⽐去年⼀年当中每⽉的进、销情况,所以,⼀般都会写成:select to_char(transaction_date,'yyyymm') txn_month,sum(decode(sign(transaction_quantity),1,transaction_quantity,0)) in_qty,sum(decode(sign(transaction_quantity),-1,transaction_quantity,0)) out_qtyfrom mtl_material_transactions mmtwhere transaction_date >= add_months(to_date(to_char(sysdate,'yyyy')||'0101','yyyymmdd'),-12)and transaction_date <= add_months(to_date(to_char(sysdate,'yyyy')||'1231','yyyymmdd'),-12)group by to_char(transaction_date,'yyyymm')这个SQL执⾏起来,如果transaction_date上⾯有加index的话,效率还算过的去;但如果没有加index的话,估计就会半个⼩时内都执⾏不出来。
并行程序设计原理随着计算机技术的飞速发展,计算机系统的处理能力不断提高,但是单个处理器的性能已经无法满足现代应用的大量计算需求。
人们开始将多个处理器组成一个并行计算机系统,以提高处理能力。
并行计算机系统具有多个处理器,并且这些处理器能够同时处理不同的任务,从而提高计算能力。
利用并行计算机系统开发并行程序需要特定的技术和方法。
本文将介绍并行程序设计的原理。
1. 并行处理的基本原理并行处理是指多个处理器同时执行不同的任务。
在并行计算机系统中,每个处理器都可以独立地执行任务,而这些处理器之间通过共享存储器进行通信和数据交换。
(1)任务分配:并行处理需要将任务分配给多个处理器,以实现多个处理器的协同工作。
(2)通信与同步:并行处理需要处理器之间进行通信和同步,确保数据的正确性和计算的一致性。
(3)负载均衡:在并行计算机系统中,要保证所有处理器都得到合理的任务分配,以实现尽可能平衡的负载,从而提高整个系统的效率和性能。
2. 并行程序的基本特点并行程序具有一下几个特点:(1)可扩展性:并行程序可以随着处理器数量的不断增加而提高计算能力,形成高性能的计算机系统。
(2)复杂性:并行程序处理的问题一般比串行程序复杂,需要更多的算法和技巧,也需要更加严格的编程规范和方法。
(3)可重复性:并行程序的结果应该是可重复的,即在多次执行相同的任务时得到相同的结果。
(4)可移植性:并行程序应该具有可移植性,即可以在不同的计算机系统中执行,而不需要对程序进行太多的修改。
(1)分解问题:设计并行程序需要将整个问题分解成多个子问题,以方便并行计算。
(2)任务调度:设计并行程序需要合理地安排任务的执行顺序,以尽可能避免处理器的空闲时间,提高计算效率。
4. 并行程序的设计方法在设计并行程序时,需要遵循一些基本的方法:(1)数据并行:数据并行是指将数据分成多个部分,分配给不同的处理器并行处理。
这种方法适用于数据独立性较强的问题。
(4)管道并行:管道并行是指将整个计算过程分成多个部分,每个部分交替执行。