关于ORACLE并发

经理早上秀了一把sql技巧,让SQL查询能缩短N倍时间,让我大吃一惊,原来经理这么牛(深藏不漏)。

然后自己网上查了一下,理解ORACLE并发技术可以将一个大任务分解为多个小任务由多个进程共同完成。合理地使用并发可以充分利用系统资源。

参考http://blog.itpub.net/18474/viewspace-1060729/

适用场合:

条件:1)大的任务,如全表扫描大表2)系统资源足够
场合:1)OLTP系统,有大量用户和session,2)数据仓库系统
Parallel query并发查询
1)修改属性

2)使用hint,select /*+parallel(t,8)*/ * from table t

即开8个进程,这个可以自己设置,经理讲这个涉及到排队,让自己的查询先执行(不知道是不是这样)

并发与空间浪费:

Parallel DDL以及某些PDML依赖于direct path load,即绕过databuffer直接写数据文件。 例如,create table as select ,insert /*+APPEND */,这会形成空间浪费,例如倒入1010M数据,每个extent 100m,direct path load会新分配100m 的extent来存放数据(如果有小于100m的extent,常规insert可以用这些空间)。假设10个并发,每个并发倒入101M数据,会创建2个extent,则总共会创建20个extent,则形成990m空间浪费。一方面浪费了空间(如果表创建之后有常规insert,则能使用这些空间),另一方面全表扫描时会搜索这些空的extent,这也降低了全表扫描的速度。 表空间的extent管理有两种方式: 1)unform size,则每个extent大小相同;uniform方式不支持extent trimming, 2)autoallocate是oracle 根据内部机制决定extent大小。而autoallocate在parallel dll中用到 extent trimming,减少空间浪费。 因此在频繁使用parallel DDL操作的表空间上,要么减少uniform size每个extent的大小,要么使用autoallocate ,以减少空间浪费。

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...