Oracle 11g R2新特性之数据仓库性能增强

原创
数据库 Oracle 数据仓库
Oracle 11g R2有很多令数据库管理和使用更加方便的新特性。本文介绍数据仓库性能的增强。Oracle 11g R2建立在这些新特性上,改善了并行查询性能,提高了数据仓库抽取、转换和加载操作的效率和性能,以更快的速度刷新物化视图。

【51CTO精选译文】Oracle 11g R2于2009年9月正式发布,根据业内人士的比较,此次增添的新特性令Oracle数据库的使用更加方便。在这篇文章中,我们将介绍Oracle 11g R2的数据仓库性能增强的特性。

数据仓库性能增强

Oracle 11g R1为数据仓库环境提供了一些非常优秀的新特性,最值得一提的就是几个新的分区方法,可以限制只为受影响的分区收集优化统计,并改进了SQL访问顾问,它可以为大表提供分区建议。Oracle 11g R2建立在这些新特性上,改善了并行查询性能,提高了数据仓库抽取、转换和加载操作的效率和性能,以更快的速度刷新物化视图。

实例化限制(instance caging),Oracle 8i引入了数据库资源管理器(Database Resource Manager,DRM),通过资源计划指令它提供了对应用程序会话组的CPU资源利用率的限制,后来发行的数据库版本大大改善了DRM限制的范围和粒度,包括对特定资源消耗组限制I/O吞吐量,DRM***的缺陷就不不能针对某个具体实例限制CPU利用率,比如仅限制那些CPU利用率太高的实例,只要一限制CPU利用率,相同服务器上的其它实例也会遭受限制。

现在即使遇到一个包含16,32甚至64颗CPU的数据库服务器也不奇怪,这些服务器上面往往运行了几十个数据库实例共享这些CPU资源,但这样做有严重的资源分配不均问题,Oracle 11g R2使用一个叫做实例化限制的新特性来克服这个问题,通过设置CPU_COUNT初始化参数为每个实例配置合适的值。DRM可以限制相同服务器上多个数据库的CPU资源,确保不会出现一个数据库实例消耗完所有CPU资源。

自动化并行度,数据仓库应用程序通常会利用并行处理信息的优势,迅速有效地处理数据,特别是在大表上查询数据时,或者是一个非常复杂的连接查询时经常使用并行查询,在执行并行操作时,优化器应该使用并行度(Degree of Parallelism ,DOP),可以在查询本身内指定(通过+PARALLEL优化器提示),也可以作为表或索引本身的一个属性(通过它的PARALLEL属性),但要精确地确定一个合适的DOP是有难度的,通常需要对表是如何连接,哪些索引对并行处理有益,同时执行哪些查询都要有一个详细的了解。

Oracle 11g R2为我们带来了好消息,现在它可以自动为任何并行语句确定DOP,优化器使用两个新的初始化参数:PARALLEL_DEGREE_POLICY和PARALLEL_MIN_TIME_THRESHOLD来计算自动化并行度(ADOP)。例如,如果PARALLEL_DEGREE_POLICY被设为AUTO,如果查询确实能从并行操作受益,Oracle 11g R2优化器会首先确定一个合适的DOP值,如果查询的预计执行时间超出了PARALLEL_MIN_TIME_THRESHOLD可接受的值(单位:秒),并且有足够资源支持并行处理,它会允许查询执行,否则就会延迟执行,直到有足够的资源释放出来,这样可以防止一个并行查询过度地消耗资源,例如,所有并行执行线程,或集群环境中的所有CPU都被其它非并行操作占用了,值得注意的是ADOP特性无法扩展到并行恢复或并行复制,它们只适用于并行查询。

并行数据缓存,在内存中并行执行:许多Oracle数据库用户发现,Oracle真正应用集群(RAC)为OLTP应用程序提供了高可用性,同时也为数据仓库应用程序提供了出色的性能表现,因为它可以在RAC集群的不同节点上的多个实例间执行并行查询,Oracle 11g R2更好地利用了这一架构,因为它可以智能缓存在RAC集群数据库内并行查询使用的缓冲区。

如果新的PARALLEL_DEGREE_POLICY初始化参数被设为AUTO,然后执行一个并行查询,Oracle 11g R2开发一个策略映射所有必需的数据块(如数据或索引块),以便更有效地在RAC数据库实例的多个数据库缓冲区高速缓存中有效地执行,如果在并行查询执行期间,一个RAC实例需要读取相同的缓冲区,它会自动使用这个映射确定哪一个远程实例持有这个缓冲区,这对物理I/O有积极影响,因为它利用了整个数据库所有实例的缓冲区缓存,分配给并行执行的查询。

以大块执行并行DML,一个简单的例子就是发票模块,它需要扫描来自多个事务源(如支票、信用卡或ETF)的数以百万计的客户付款,然后更新每张发票的平衡,以及客户应付款的总额的平衡。

新的DBMS_PARALLEL_EXECUTE包提供了一套有趣的功能集,在这种情况下最有用,因为它允许大的DML语句并行执行,因此它可以按大块处理数据,大块可以简单地基于选择源表的rowid、主键值或任何程序定义的规则集定义。一旦定义了这些分块规则,DBMS_SCHEDULER用于处理每个数据大块,并提交修改的数据,在处理过程中,如果某个特定的大块失败,可以重新调度处理这个大块。***,Oracle 11g R2提供了多个新的并行任务元数据视图(DBA_PARALLEL_EXECUTE_*),它们可以跟踪DBMS_PARALLEL_EXECUTE定义的边界,以及每个大块的处理进度。

更快的物化视图刷新,数据仓库应用程序经常使用物化视图,特别是在改写查询时,以便它能够从物化视图的小数据集获得必要的信息,而不用直接查询基础表,当物化视图的基础表变化频繁时,使用物化视图日志将变化的数据填充到物化视图中。Oracle 11g R2提供了从刷新进程外清洗物化视图日志的功能,性能也因此得到了改善,特别是那些包含了求和,连接和二者皆有的物化视图。同样,在ON COMMIT FAST REFRESH子句上新的WITH COMMIT SCN指令告诉Oracle 11g R2使用基于SCN的物化视图日志快速刷新。

ORACLE_LOADER预处理程序,将旧系统数据加载到数据仓库可能是一个昂贵的操作,因为使用SQL*Loader批量载入工具将数据载入数据库需要大量的系统资源,包括数据仓库表空间***层存储的成本,以及旧系统的平面文件的存储成本。

#t#这些平面文件以压缩格式存储可以降低存储成本,但在SQL*Loader将旧系统数据加载到数据仓库之前,这些文件可能是非经压缩的,意味着需要额外的存储容纳这些未压缩的数据,遗憾的是,这个限制也应用到外部表,它们使用ORACLE_LOADER访问方法直接从原有平面文件检索数据,许多Oracle用户已经使用外部表从原有的平面文件快速构建了报表,甚至使用INSERT INTO … SELECT FROM语句进行***次求和,其它消息型数据就直接加载到数据仓库中。

因为ORACLE_LOADER访问方法已经得到了增强,它可以对SQL*Loader操作和外部表进行预处理,新的PREPROCESSOR子句指定一个存在的DIRECTORY对象,以及该目录下的可执行程序,由这个可执行程序预处理原有的文件数据,例如,使用gunzip解压工具对其解压,然后,ORACLE_LOADER访问方法从标准输出流(stdout)中读取数据,就好像是直接从原有的文件中读取数据一样。

【51CTO.com译稿,非经授权请勿转载。合作站点转载请注明原文译者和出处为51CTO.com,且不得修改原文内容。】

原文:The Second 5 top new features in Oracle Database 11g R2   作者:Jim Czuprynski

【编辑推荐】

  1. 新的Oracle 11g功能展示
  2. 深入Oracle 11g分区功能
  3. Oracle 11g R2中新特性一览
  4. Oracle 11g R2如约而至 RAC技术成亮点  

     

责任编辑:yangsai 来源: 51CTO.com
相关推荐

2010-01-13 16:08:09

Oracle 11g 数据卫士

2010-04-30 13:35:28

Oracle 11g

2009-09-02 15:35:57

Oracle 11g

2009-03-05 11:02:12

NTP列式压缩云计算

2010-01-19 10:17:41

Oracle 11g

2010-01-18 10:15:47

Oracle 11g RMAN

2010-01-25 10:11:32

Oracle 11g

2011-08-22 14:19:31

Oracle 11g 示例用户

2009-02-15 14:41:19

SQL Perform新特性Oracle

2012-05-07 13:45:45

Oraclen 11g虚拟列数据库

2009-08-20 09:42:46

Oracle 11g

2009-02-18 13:21:04

2009-01-11 08:16:00

自适应游标共享新特性Oracle 11g

2009-09-02 13:41:39

Oracle 11g

2011-07-19 14:08:09

Oracle 11g 数据库

2010-04-16 09:50:26

Oracle 11g

2009-04-15 09:49:20

2009-11-20 12:55:08

Oracle 11g功

2009-09-07 09:03:47

VMWare安装Ora

2009-11-12 10:12:21

主数据管理SQL Server
点赞
收藏

51CTO技术栈公众号