eygle.com   eygle.com
eygle.com  
 

« 帝都华盛顿 晤对魏欧林先生 - 令人孺慕之长者 | Blog首页 | 备份重于一切 - 记(eygle.com)服务器硬盘故障 »

11gR2新特性之- 并行DBMS_PARALLEL_EXECUTE

在2009 Oracle Openworld上,Thomas Kyte在一个关于《The top 10 - No, 11 - New Features of Oracle Database 11g Release 2》的演讲中,提到一个并行执行的新特性,比较感兴趣。
(这个PPT目前已经可以下载,下载地址为:Top 10,Tom的另外一个OOW PPT

这个新特性引入一个Package: DBMS_PARALLEL_EXECUTE,通过这个包可以将一个任务调度为并行,而此前我们需要手工来编写程序,通过rowid或者主键还分割,前一段做过大量这个工作,用11gR2,这个工作能简化很多。

这个包的典型用法引用如下:
DECLARE
l_sql_stmt VARCHAR2(1000);
l_try NUMBER;
l_status NUMBER;
BEGIN

-- Create the TASK
DBMS_PARALLEL_EXECUTE.CREATE_TASK ('mytask');

-- Chunk the table by ROWID
DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_ROWID('mytask', 'HR', 'EMPLOYEES', true, 100);

-- Execute the DML in parallel
l_sql_stmt := 'update /*+ ROWID (dda) */ EMPLOYEES e
SET e.salary = e.salary + 10
WHERE rowid BETWEEN :start_id AND :end_id';
DBMS_PARALLEL_EXECUTE.RUN_TASK('mytask', l_sql_stmt, DBMS_SQL.NATIVE,
parallel_level => 10);

-- If there is an error, RESUME it for at most 2 times.
L_try := 0;
L_status := DBMS_PARALLEL_EXECUTE.TASK_STATUS('mytask');
WHILE(l_try < 2 and L_status != DBMS_PARALLEL_EXECUTE.FINISHED)
LOOP
L_try := l_try + 1;
DBMS_PARALLEL_EXECUTE.RESUME_TASK('mytask');
L_status := DBMS_PARALLEL_EXECUTE.TASK_STATUS('mytask');
END LOOP;

-- Done with processing; drop the task
DBMS_PARALLEL_EXECUTE.DROP_TASK('mytask');

END;
/
这是一个好东西,记录在此。

-The End-


历史上的今天...
      >> 2008-11-03文章:
             《深入解析Oracle》的出版进度
      >> 2007-11-03文章:
      >> 2006-11-03文章:
      >> 2004-11-03文章:
             两只蝴蝶
------
这篇 【11gR2新特性之- 并行DBMS_PARALLEL_EXECUTE】来自 eygle.com | CSDN网摘| del.icio.us|Google订阅 | 鲜果订阅 | 抓虾订阅

By eygle on 2009-11-03 08:11 | Comments (0) | Posted to OraNews | Oracle10g/11g | Edit |Pageviews:

相关文章 随机文章
Oracle Database 11g Release 2 HP/AIX
Oracle 11gR2 Solaris x86-64 发布
Oracle 11gR2 Solaris (SPARC) (64-bit) 发布
Oracle 11gR2 安装初体验 - OEL + Oracle
Oracle Database 11gR2的升级路径与升级思考
Tools:使用oradim恢复windows上的数据库
一花一世界 一生一世情
整理数据的小技巧-使用Excel 、SQLPLUS和PL/SQL developer
奥运、墨墨 与未来的日子
ITPUB电子杂志第十期-诊断案例专刊出版
搜索本站:

留言 (0)

发表留言:



Remember Me?
(输入验证码后方可评论,谢谢支持)



CopyRight © 2004~2010 eygle.com, All rights reserved.