使用 DBMS_PARALLEL_EXECUTE 更新大表
来源:互联网 发布:数据库中省略为什么 编辑:程序博客网 时间:2024/06/01 16:57
Oracle 11g 中新功能 DBMS_PARALLEL_EXECUTE 包可以使你在并行增量更新一个大表的数据,两个高层次的步骤是:
- Group sets of rows in the table into smaller chunks.
- Apply the desired UPDATE statement to the chunks in parallel, committing each time you have finished processing a chunk.
This technique is recommended whenever you are updating a lot of data. Its advantages are:
- You lock only one set of rows at a time, for a relatively short time, instead of locking the entire table.
- You do not lose work that has been done if something fails before the entire operation finishes.
- You reduce rollback space consumption.
- You improve performance.
Different Ways to Spilt Workload
- CREATE_CHUNKS_BY_NUMBER_COL : Chunks the table associated with the given task by the specified column.
- CREATE_CHUNKS_BY_ROWID : Chunks the table associated with the given task by ROWID
- CREATE_CHUNKS_BY_SQL : Chunks the table associated with the given task by means of a user-provided SELECT statement
准备测试数据
注:
执行DBMS_PARALLE_EXECUTE的用户需要create job权限,DBMS_SQL的执行权限,因为CHUNK_BY_SQL, RUN_TASK, and RESUME_TASK 子程序需要使用DBMS_SQL执行查询。
1.使用 CREATE_CHUNKS_BY_ROWID
使用CREATE_CHUNKS_BY_NUMBER_COL
使用CREATE_CHUNKS_BY_SQL
0 0
- 使用 DBMS_PARALLEL_EXECUTE 更新大表
- Oracle 11g 使用 dbms_parallel_execute 对大表进行并行update
- Oracle 11g 使用 dbms_parallel_execute 对大表进行并行update
- DBMS_PARALLEL_EXECUTE
- DBMS_PARALLEL_EXECUTE
- 大表更新方法--使用rowid
- 【转】DBMS_PARALLEL_EXECUTE
- Oracle大表更新
- 批量更新大表
- Oracle 并发更新大表
- mysql大表更新comment方案
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
- 大数据量更新SQL
- mysql大表更新sql的优化策略
- 在线更新SQL Server千万级记录的大表
- mysql大表更新sql的优化策略
- mysql explain(转)
- poj 1113wall (凸包)
- Mybatis3框架的搭建(详细过程)
- 【IOS网络通信】Mac&IOS Socket编程
- 使用shell脚本自动更新动态域名
- 使用 DBMS_PARALLEL_EXECUTE 更新大表
- 二叉树——建数字树,知先序、中序,输出后序
- java实现上传图片进行切割
- 每日一记:分数规划
- mysql显示SQL语句执行所消耗的时间
- 携程移动网站优化实践
- 组合模式理解Cocosd-x游戏引擎之addChild函数
- 简单usb驱动代码记录
- linux(Centos)上memcacheq成功安装及使用