Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103682868
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-05-22 17:36:31

 来源:

每个查询在访问、连接和处理数据的不同部分时都有它自己的特征。因此,每个SQL语句在被解析时都要进行优化和并行化处理。数据更改时,如果有更加优化的并行执行计划可用,或者系统中新添加了一个节点,那么Oracle可以自动适应新的情况。这样可为并行化任何种类的操作提供最高程度的灵活性:

(1)、在语句执行前,对于每个查询要求,会动态地优化并行访问的物理数据子集。

(2)、对于每个查询,都会优化其并行度。与不共享环境不同,不存在必需的最小并行度来调用所有节点访问所有数据,这是访问所有数据的基础要求。

(3)、操作可以根据当前工作负载、特征和查询的重要性,使用一个、一些或全部Real Application Cluster 节点并行运行。

只要语句得到优化和并行化,就可以知道所有后续的并行子任务。原始进程变为查询协调器;并行处理服务器(PX 服务器)从一个或多个节点上的并行处理服务器的公用缓冲池得到分配,并开始并行执行该操作。

与不共享体系结构相似,共享一切体系结构中的每个并行处理服务器在其个人数据子集上独立工作。数据或功能在并行进程之间的传送机制也与上述的不共享体系结构相似或者相同。确定请求的并行计划之后,每个并行处理服务器都知道其数据集和任务,而进程间通信就像在不共享环境中一样很少。

然而,与不共享体系结构不同,每个并行处理的SQL 语句不需要考虑任何物理数据库布局限制就可以进行优化。这使得每个并行处理可以构造最佳的数据子集,从而提供与纯不共享体系结构相比同等的,甚至在大多数情形下更好的可伸缩性和性能。只要有益,并行操作的后续步骤就会由一个并行处理服务器进行组合和处理,从而减少数据传送或功能传送的需求。

为什么共享一切比不共享更好?

不共享体系结构可以追溯到将海量并行处理(MPP)系统看作唯一能提供可伸缩的高端并行计算的硬件体系结构。MPP系统中的每个节点都有它自己的系统组件(CPU、内存和磁盘),在不同的子任务上工作,并且不能共享其任何资源。

这一切都已过去。现在,大多数成功的、广泛使用的并行硬件系统都是对称多处理器系统(SMP), 要么是单机的,要么是作为松耦合的群集。SMP系统利用共享公用内存和磁盘资源的多处理器,因而也被称为“共享一切”系统。

纯不共享体系结构的支持者总是声称共享一切体系结构(特别是群集环境)对于高端环境会缺乏可伸缩性并引起显著的开销,因而这种体系结构不能用于具有高度并行和/或并发性的高端应用。这种说法是错误的。今天的硬件和软件技术已经解决了过去所有的问题,如高速群集互连或Oracle Real Application Clusters 的高速缓存融合体系结构。

Oracle 的动态并行处理框架建立在与不共享软件相同的并行高级计算基础设计之上,具有所有的优点,还增强了其功能并克服了不共享方法在体系结构上的缺点。基于不共享原理的软件可以看作是第一代、但已经过时的数据库并行处理软件。

阅读(388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~