首先,创建一个并行任务: DECLAREl_task_name VARCHAR2(30) :='MY_PARALLEL_TASK';BEGINDBMS_PARALLEL_EXECUTE.CREATE_TASK(task_name=>l_task_name);END;/ AI代码助手复制代码 将大量数据分成多个小块,并将这些小块插入到任务中: DECLAREl_chunk_sizeNUMBER:=10000;BEGINDBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY...
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...
需要注意的是,DBMS_PARALLEL_EXECUTE包依赖于任务,需要参数job_queue_processes值大于0。如果job_queue_processes=0,执行DBMS_PARALLEL_EXECUTE,这个任务会处于等待状态,等待的是“PL/SQL lock timer"。 DBMS_PARALLEL_EXECUTE包提供了三种类型的分块方法,下面的实验,会分别测...
DBMS_PARALLEL_EXECUTE这个包操作起来比较简单,大体步骤为: (1)创建任务task,即调用create_task()过程; (2)创建分块规则,即调用create_chunk_by_rowid()或者create_chunk_by_number_col()等过程; (3)写动态update的sql语句,复杂和简单的均可,可以通过dbms_output.put_line()来验证动态sql的正确性; (4)运行...
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', ...
12:22:19 GPODB.REGIS>> 12:22:20 GPODB.REGIS>> SELECT COUNT(1), STATUS 2 FROM USER_PARALLEL_EXECUTE_CHUNKS 3 WHERE TASK_NAME = 'GPO_REGIS' 4 GROUP BY STATUS 5 / COUNT(1) STATUS --- --- 688 UNASSIGNEDPode-se verificar que foram criados 688...
8vc_task := 'Task 2: By Number Col'; 9dbms_parallel_execute.create_task(task_name => vc_task); 10 11--Define the Spilt 12dbms_parallel_execute.create_chunks_by_number_col(task_name => vc_task, 13table_owner => 'SYS',
2.4 创建task TheCREATE_TASK procedure is used to create a new task. It requires a task name tobe specified, but can also include an optional task comment. SQL> BEGIN 2 DBMS_PARALLEL_EXECUTE.create_task (task_name => 'test_task'); ...
-- Create the TASK DBMS_PARALLEL_EXECUTE.CREATE_TASK ('mytask'); -- Chunk the table by ROWID DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_ROWID('mytask', 'MH', 'EMPLOYEES', true, 100); -- Execute the DML in parallel l_sql_stmt := 'update /*+ ROWID (dda) */ EMPLOYEES e ...
使用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', ...