首先,创建一个并行任务: 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包提供了三种类型的分块方法,下面的实验,会分别测...
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...
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)运行...
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'); ...
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', ...
DECLARE l_chunk_sql VARCHAR2(1000); 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 MANAGER_ID l_chunk_sql := 'SELECT distinct manager_id, manager_id FROM employees'; DBMS_PAR...
使用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', ...
1. 使用 CREATE_CHUNKS_BY_ROWID BEGIN DBMS_PARALLEL_EXECUTE.DROP_TASK ('test_task'); END; / YANG@yangdb-rac3> DECLARE 2 l_task VARCHAR2(30) := 'test_task'; 3 l_sql_stmt VARCHAR2(32767); 4 l_try NUMBER; 5 l_status NUMBER; ...