oracle_并发优化

oracle_并发优化

ID:44703346

大小:17.17 KB

页数:5页

时间:2019-10-25

oracle_并发优化_第1页
oracle_并发优化_第2页
oracle_并发优化_第3页
oracle_并发优化_第4页
oracle_并发优化_第5页
资源描述:

《oracle_并发优化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle的并发技术可以将一个大任务分解为多个小任务由多个进程共同完成。合理地使用并发可以充分利用系统资源,提高效率。一、并发的种类ParallelqueryParallelDML(PDML)ParallelDDL Parallelrecovery[@more@]二、适用场合适用parallel的两个条件1)大的任务,如全表扫描大表这和日常生活中的经验是一样的,小任务自己完成都比派发任务省事2)系统有足够的资源(cpu/io)换句话说,并发是在系统资源充足、用户少的系统上,为了充分利用系统资源以提高任务处理速度而设计的一种技术。以

2、下是几种场景:1)OLTP系统有大量用户和session,如果每个session使用并发查询将导致系统崩溃。但也有例外例如计费系统月底或下班后没有或用户很少访问,运行批处理程序,此时可使用并发提高速度2)数据仓库系统通常可使用并发查询、PDML等并发,注意有些数据仓库系统也提供给大量用户访问,这种系统有某些OLTP特性,应慎用并发3)无论是OLTP还是数据仓库,维护期间使用parallelddl和PDML对管理员来说是非常有用的三、Parallelquery使用并发查询的方法:1)修改表属性Altertablebig_tablepa

3、rallel4;Altertablebig_tableparallel;由oracle根据系统资源情况决定。这是推荐的.Oracle根据cpu数目乘以parallelthreadspercpu参数(default2),例如4cpu的机器,oracle决定parallel数目为82)使用hint,select*/*+PARALLEL(emp,12)*/…四、PDML例子:ALTERTABLEempPARALLEL(10);ALTERSESSIONENABLEPARALLELDML;INSERTINTOempSELECT*FROMt_e

4、mp;COMMIT;ALTERSESSIONENABLEPARALLELDML;INSERT/*+PARALLEL(emp,12)*/INTOempSELECT/*+PARALLEL(t_emp,12)*/*FROMt_emp;COMMIT;注意:使用parallel后,insertselect*语句自动就使用direct-load了,此时不再需要使用appendhint(/*+APPEND*/)PDML的限制:不支持有trigger的表,在上面做PDML,能成功,但忽略了并发性不支持某些约束,例如self-referentiali

5、ntegrity。原因是PDML分为多个独立的session去修改数据,无法保证某些完整性;容易引起死锁已经其他锁问题一个session使用了PDML,在commit/rollback之前,另一个session无法再使用PDMLAdvancedreplication不支持(因为使用了trigger)Deferredconstraints(约束的deferred模式指修改操作在提交时才去验证是否满足约束条件)不支持分布式事务不支持Clusteredtables不支持当违反这些限制,PDML要么报错,要么忽略并行度五、并发与空间浪费Pa

6、rallelDDL以及某些PDML依赖于directpathload,即绕过databuffer直接写数据文件。例如,createtableasselect,insert/*+APPEND*/,这会形成空间浪费,例如倒入1010M数据,每个extent100m,directpathload会新分配100m的extent来存放数据(如果有小于100m的extent,常规insert可以用这些空间)。假设10个并发,每个并发倒入101M数据,会创建2个extent,则总共会创建20个extent,则形成990m空间浪费。一方面浪费了空间

7、(如果表创建之后有常规insert,则能使用这些空间),另一方面全表扫描时会搜索这些空的extent,这也降低了全表扫描的速度。表空间的extent管理有两种方式,unformsize,则每个extent大小相同,autoallocate是oracle根据内部机制决定extent大小,更灵活Uniform方式不支持extenttrimming,而autoallocate在parallelddl中用到extenttrimming,减少了空间浪费。因此在频繁使用parallelDDL操作的表空间上,要么减少uniformsize每个ex

8、tent的大小,要么使用autoallocate,以减少空间浪费。六、并发DIY-存储过程的并发以下是一个常见任务:扫描全表,修改数据,再写入新的表如果一个进程处理太慢,我们通常会自己将数据划分,然后开多个进程调用。使用11gr2内置

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。