select /*+ parallel(a,4)*/ col1 from tab;
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比朗縣網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式朗縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋朗縣地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
表示查詢表tab的字段col1,4個(gè)進(jìn)程并行查詢,前提是必須要有4個(gè)CPU才有效,否則性能會(huì)比不加并發(fā)還低
A1 A2 A3也是存儲(chǔ)過(guò)程嗎? job其實(shí)上也只是分別調(diào)用這幾個(gè)過(guò)程來(lái)執(zhí)行,而不是靠執(zhí)行一個(gè)A就可以讓所有A1 2 3 4 并行執(zhí)行的。 如果A1 2 3 4都是需要參數(shù)的話,那么你也只有用A分開(kāi)給每一個(gè)都傳遞參數(shù),否則的話也是不能并行執(zhí)行的。 例如:
declare n number
begin
dbms_job.submit('a1;a2;a3;a4',sysdate,'trunc(sysdate+1)');
commit;
end;
/
這樣會(huì)讓a1 2 3 4分別同時(shí)執(zhí)行,你可以做一個(gè)改動(dòng)就是讓a給a*傳遞參數(shù)的動(dòng)作 直接加入到a 1 2 3 4的過(guò)程當(dāng)中才可以。
Oracle試圖自動(dòng)化系統(tǒng)配置來(lái)使并行操作的性能最大化。然而,仍然有許多手工調(diào)整的空間,我們可以調(diào)整數(shù)據(jù)庫(kù),優(yōu)化SQL并行性能。
判斷并行度
合適的并行度DOP對(duì)于良好的并行性能很關(guān)鍵。Oracle會(huì)按如下方式設(shè)定DOP:
1、如果指定或請(qǐng)求了并行執(zhí)行,但是沒(méi)有指定DOP,默認(rèn)DOP會(huì)設(shè)置為該系統(tǒng)上CPU內(nèi)核數(shù)量的兩倍。對(duì)于RAC系統(tǒng),DOP值會(huì)是整個(gè)集群內(nèi)核數(shù)量的兩倍。默認(rèn)值是由配置參數(shù)“PARALLEL_ THREADS_PER_CPU”控制的。
2、對(duì)于Oracle 11g R2之后的版本,如果“ PARALLEL_DEGREE_POLICY”被設(shè)置為“AUTO”,Oracle將根據(jù)被執(zhí)行的運(yùn)行性質(zhì)和涉及對(duì)象的大小自動(dòng)調(diào)整DOP值。
3、如果“PARALLEL_ADAPTIVE_MULTI_USER”被設(shè)置為“TRUE”,Oracle將基于該系統(tǒng)的整個(gè)負(fù)載調(diào)整DOP。當(dāng)系統(tǒng)承受更重的負(fù)載時(shí),DOP值將會(huì)減少。
4、在Oracle 11g或者更高版本中,如果“PARALLEL_IO_CAP ”被設(shè)置為TRUE,Oracle將把DOP限制為IO子系統(tǒng)可以支持的值。這些IO子系統(tǒng)限制可以通過(guò)“DBMS_RESOURCE_ MANAGER.CALIBRATE_IO”存儲(chǔ)過(guò)程計(jì)算。
5、DOP可以被指定到表或者索引一級(jí),可以通過(guò)在“CREATE TABLE”,“CREATE INDEX”,“ALTER TABLE”或者“ALTER INDEX”中使用“PARALLEL ”從句來(lái)實(shí)現(xiàn)。
6、“PARALLEL ”關(guān)鍵字可以被用來(lái)指定某個(gè)查詢中指定表的DOP。
7、不管任何其它設(shè)置,DOP不能超過(guò)“PARALLEL_MAX_SERVERS”可以支持的數(shù)量。對(duì)于大部分SQL語(yǔ)句,服務(wù)器數(shù)量需要是請(qǐng)求DOP的兩倍。
正如我們可以看到的,超過(guò)優(yōu)化點(diǎn)增減DOP會(huì)導(dǎo)致進(jìn)一步性能提升的失敗。然而,超過(guò)最佳優(yōu)化限制強(qiáng)行增加DOP值會(huì)對(duì)整個(gè)系統(tǒng)性能帶來(lái)重大的負(fù)面影響。盡管被并行化的SQL可能不會(huì)隨著DOP的增加而降低,但是該系統(tǒng)的負(fù)載會(huì)持續(xù)增加,而且會(huì)引起其它并發(fā)運(yùn)行的SQL要遭受響應(yīng)時(shí)間降低的影響。
當(dāng)我們達(dá)到最優(yōu)DOP點(diǎn)時(shí)(該系統(tǒng)中的值大約是8),查詢時(shí)間的減少變的平緩了。然而,其它會(huì)話在等待CPU可用上花費(fèi)的時(shí)間會(huì)持續(xù)增長(zhǎng)。其它等待訪問(wèn)CPU的會(huì)話將需要繼續(xù)等待,這會(huì)導(dǎo)致響應(yīng)時(shí)間變慢。