首先,我们测试CREATE_CHUNKS_BY_ROWID的存储过程, SQL> DECLARE l_task VARCHAR2(30) :='test_task'; l_sql_stmt VARCHAR2(32767); l_try NUMBER; l_status NUMBER; BEGIN -- Create the TASK DBMS_PARALLEL_EXECUTE.CREATE_TASK (task_name => l_task); --...
12:21:57 GPODB.REGIS>> 12:21:57 GPODB.REGIS>>> BEGIN 2 DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid(task_name => 'GPO_REGIS', 3 table_owner => 'REGIS', 4 table_name => 'TESTE_CHUNCK', 5 by_row => TRUE, 6 chunk_size => 1000000); 7 END; 8 / PL/SQL procedure successful...
AI代码助手复制代码 将大量数据分成多个小块,并将这些小块插入到任务中: DECLAREl_chunk_sizeNUMBER:=10000;BEGINDBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_ROWID(task_name=>'MY_PARALLEL_TASK',table_owner=>'SCOTT',table_name=>'EMP',by_rowid=>TRUE,chunk_size=>l_chunk_size );END; / AI代码助手复制...
begin dbms_parallel_execute.create_task('PROCESS TASK'); dbms_parallel_execute.create_chunks_by_rowid ( task_name=>'PROCESS TASK', table_owner=>user, table_name=>'T', by_row=>false, chunk_size=>10000); end; /通过dba_parallel_execute_chunks可以查看到切分后的rowid情况。 set pages 200 s...
(4) CREATE_CHUNKS_BY_SQL : 通过用户提供的sql语句来切割表 二、实践操作 DBMS_PARALLEL_EXECUTE这个包操作起来比较简单,大体步骤为: (1)创建任务task,即调用create_task()过程; (2)创建分块规则,即调用create_chunk_by_rowid()或者create_chunk_by_number_col()等过程; (3)写动态update的sql语句,复杂和简...
dbms_parallel_execute.create_task(task_name => vc_task); --手工定义一个Task任务; --Define the Spilt dbms_parallel_execute.create_chunks_by_rowid(task_name => vc_task, table_owner => 'SYS', table_name => 'T', by_row => true, ...
--dbms_parallel_execute 包使用并行的2个步骤,一是将大表分成多个小的chunks。二对这些小的chunks 进行并行。 Thistechnique is recommended whenever you are updating a lot of data. Its advantages are: (1)You lock only one set of rows at a time, for a relatively shorttime, instead of locking ...
DBMS_PARALLEL_EXECUTE 使用三种方法来将一个表的数据分割成chunk CREATE_CHUNKS_BY_NUMBER_COL : 通过指定的字段来切割表 CREATE_CHUNKS_BY_ROWID : 通过ROWID来切割表 CREATE_CHUNKS_BY_SQL : 通过用户提供的sql语句来切割表 前期准备: 使用上述功能的用户必须拥有CREATE JOB 权限,执行DBMS_SQL的权限,因为CHUNK_...
vc_task := 'Task 1: By Rowid'; --Task名称 dbms_parallel_execute.create_task(task_name => vc_task); --手工定义一个Task任务; --Define the Spilt dbms_parallel_execute.create_chunks_by_rowid(task_name => vc_task, table_owner => 'SYS', ...
使用dbms_parallel_execute来创建一个Job,以1万条数据分单位进行数据的rowid切分。 begin dbms_parallel_execute.create_task('PROCESS TASK'); dbms_parallel_execute.create_chunks_by_rowid ( task_name=>'PROCESS TASK', table_owner=>user, table_name=>'T', ...