作不到吧,存儲過程又并不支持線程,你可以把要插入的數(shù)據(jù)union all,然后用一條帶并行指示的語句進行插入
創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為平鄉(xiāng)等服務(wù)建站,平鄉(xiāng)等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為平鄉(xiāng)企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
insert /*+ parallel(tablename, 3) */ into tablename
select * from table1
union all select * from table2
union all select * from table3
建索引時,我們?yōu)榱私ㄋ饕?,會加上并行,加上并行之后,此列索引就會是并行了。訪問有并行度的索引時,CBO可能可能會考慮并行執(zhí)行,這可能會引發(fā)一些問題,如在服務(wù)器資源緊張的時候用并行會引起更加嚴(yán)重的爭用。當(dāng)使用并行后,需要把并行度改回來。\x0d\x0aSQL drop table test purge;\x0d\x0aSQL create table test as select * from dba_objects;\x0d\x0aSQL create index ind_t_object_id on test(object_id) parallel 4 ;\x0d\x0aSQL select s.degree\x0d\x0afrom dba_indexes s\x0d\x0awhere s.index_name = upper('ind_t_object_id');\x0d\x0aDEGREE\x0d\x0a----------------------------------------\x0d\x0a4\x0d\x0a\x0d\x0aSQL alter index ind_t_object_id noparallel;\x0d\x0a\x0d\x0aSQL select s.degree\x0d\x0afrom dba_indexes s\x0d\x0awhere s.index_name = upper('ind_t_object_id');\x0d\x0aDEGREE\x0d\x0a----------------------------------------\x0d\x0a1
A1 A2 A3也是存儲過程嗎? job其實上也只是分別調(diào)用這幾個過程來執(zhí)行,而不是靠執(zhí)行一個A就可以讓所有A1 2 3 4 并行執(zhí)行的。 如果A1 2 3 4都是需要參數(shù)的話,那么你也只有用A分開給每一個都傳遞參數(shù),否則的話也是不能并行執(zhí)行的。 例如:
declare n number
begin
dbms_job.submit('a1;a2;a3;a4',sysdate,'trunc(sysdate+1)');
commit;
end;
/
這樣會讓a1 2 3 4分別同時執(zhí)行,你可以做一個改動就是讓a給a*傳遞參數(shù)的動作 直接加入到a 1 2 3 4的過程當(dāng)中才可以。