裸泳的猪

沾沾自喜其实最可悲

0%

oracle提供了很好用的大数据量数据更新的函数dbms_parallel_execute,改用dbms_parallel_execute执行,可以进行并行更新并且事务大小可控。

以下在命令窗口执行:

  1. 首先创建一个TASK,名称为update_pzjcxx:
    1
    exec dbms_parallel_execute.create_task('update_pzjcxx');
  2. 把将要更新的表按照ROWID进行分批,分到各个CHUNK中:
    1
    exec dbms_parallel_execute.create_chunks_by_rowid(task_name => 'update_pzjcxx',table_owner => 'V7PROD',table_name => 'KCDY_PZJCXX',by_row => true,chunk_size => 10000);
    BY_ROW:分CHUNK的类型。如果为TRUE,则后面的CHUNK_SIZE表示是行;如果是FALSE,则后面的CHUNK_SIZE表示的是BLOCK。
    CHUNK_SIZE:CHUNK大小。如果BY_ROW为TRUE,表示多少行分为一个CHUNK;如果BY_ROW为FALSE,则表示多少块分为一个CHUNK。
阅读全文 »