SQL調(diào)用服務(wù)器核心數(shù)(oracle 多線程)

select ? ?/*+parallel(t,25)+*/?

一齐饮、Parallel

1. 用途

強(qiáng)行啟用并行度來執(zhí)行當(dāng)前SQL捺信。這個在Oracle 9i之后的版本可以使用豪嚎,之前的版本現(xiàn)在沒有環(huán)境進(jìn)行測試。也就是說鹃彻,加上這個說明,可以強(qiáng)行啟用Oracle的多線程處理功能妻献。舉例的話蛛株,就像電腦裝了多核的CPU,但大多情況下都不會完全多核同時啟用(2核以上的比較明顯)育拨,使用parallel說明谨履,就會多核同時工作,來提高效率熬丧。

但本身啟動這個功能笋粟,也是要消耗資源與性能的。所有析蝴,一般都會在返回記錄數(shù)大于100萬時使用害捕,效果也會比較明顯。

2. 語法

/*+parallel(table_short_name,cash_number)*/

這個可以加到insert闷畸、delete尝盼、update、select的后面來使用(和rule的用法差不多佑菩,有機(jī)會再分享rule的用法)

開啟parallel功能的語句是:

alter session enable parallel dml;

這個語句是DML語句哦盾沫,如果在程序中用裁赠,用execute的方法打開。

3. 實(shí)例說明

用ERP中的transaction來說明下吧赴精。這個table記錄了所有的transaction组贺,而且每天數(shù)據(jù)量也算相對比較大的(根據(jù)企業(yè)自身業(yè)務(wù)量而定)。假設(shè)我們現(xiàn)在要查看對比去年一年當(dāng)中每月的進(jìn)祖娘、銷情況失尖,所以,一般都會寫成:

select to_char(transaction_date,'yyyymm') txn_month,

sum(

decode(

sign(transaction_quantity),1,transaction_quantity,0

)

) in_qty,

sum(

decode(

sign(transaction_quantity),-1,transaction_quantity,0

)

) out_qty

from mtl_material_transactions mmt

where transaction_date >= add_months(

to_date(?

to_char(sysdate,'yyyy')||'0101','yyyymmdd'),

-12)

and transaction_date <= add_months(

to_date(

to_char(sysdate,'yyyy')||'1231','yyyymmdd'),

-12)

group by to_char(transaction_date,'yyyymm')?

這個SQL執(zhí)行起來渐苏,如果transaction_date上面有加index的話掀潮,效率還算過的去;但如果沒有加index的話琼富,估計(jì)就會半個小時內(nèi)都執(zhí)行不出來仪吧。這是就可以在select 后面加上parallel說明。例如:

select /*+parallel(mmt,10)*/

to_char(transaction_date,'yyyymm') txn_month,

...

這樣的話鞠眉,會大大提高執(zhí)行效率薯鼠。如果要將檢索出來的結(jié)果insert到另一個表tmp_count_tab的話,也可以寫成:

insert /*+parallel(t,10)*/

into tmp_count_tab

(

txn_month,

in_qty,

out_qty

)

select /*+parallel(mmt,10)*/

to_char(transaction_date,'yyyymm') txn_month,

...

插入的機(jī)制和檢索機(jī)制差不多械蹋,所以出皇,在insert后面加parallel也會加速的。關(guān)于insert機(jī)制哗戈,這里暫不說了郊艘。

Parallel后面的數(shù)字,越大唯咬,執(zhí)行效率越高纱注。不過,貌似跟server的配置還有oracle的配置有關(guān)胆胰,增大到一定值狞贱,效果就不明顯了。所以蜀涨,一般用8,10,12,16的比較常見瞎嬉。我試過用30,發(fā)現(xiàn)和16的效果一樣勉盅。不過佑颇,數(shù)值越大,占用的資源也會相對增大的草娜。如果是在一些package挑胸、function or procedure中寫的話,還是不要寫那么大宰闰,免得占用太多資源被DBA開K茬贵。

4. Parallel也可以用于多表

多表的話簿透,就是在第一后面,加入其他的就可以了解藻。具體寫法如下:

/*+parallel(t,10) (b,10)*/

5. 小結(jié)

關(guān)于執(zhí)行效率老充,建議還是多按照index的方法來提高效果。Oracle有自帶的explan road的方法螟左,在執(zhí)行之前啡浊,先看下執(zhí)行計(jì)劃路線,對寫好的SQL tuned之后再執(zhí)行胶背。實(shí)在沒辦法了巷嚣,再用parallel方法。Parallel比較邪惡钳吟,對開發(fā)者而言廷粒,不是好東西,會養(yǎng)成不好習(xí)慣红且,導(dǎo)致很多bad SQL不會暴漏坝茎,SQL Tuning的能力得不到提升。我有見過某些人create table后暇番,從不create index或primary key嗤放,認(rèn)為寫SQL時加parallel就可以了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奔誓,一起剝皮案震驚了整個濱河市斤吐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厨喂,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庄呈,死亡現(xiàn)場離奇詭異蜕煌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)诬留,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門斜纪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人文兑,你說我怎么就攤上這事盒刚。” “怎么了绿贞?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵因块,是天一觀的道長。 經(jīng)常有香客問我籍铁,道長涡上,這世上最難降的妖魔是什么趾断? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮吩愧,結(jié)果婚禮上芋酌,老公的妹妹穿的比我還像新娘。我一直安慰自己雁佳,他們只是感情好脐帝,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糖权,像睡著了一般腮恩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上温兼,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天秸滴,我揣著相機(jī)與錄音,去河邊找鬼募判。 笑死荡含,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的届垫。 我是一名探鬼主播释液,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼装处!你這毒婦竟也來了误债?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤妄迁,失蹤者是張志新(化名)和其女友劉穎寝蹈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體登淘,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箫老,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了黔州。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耍鬓。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖流妻,靈堂內(nèi)的尸體忽然破棺而出牲蜀,到底是詐尸還是另有隱情,我是刑警寧澤绅这,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布涣达,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏峭判。R本人自食惡果不足惜开缎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望林螃。 院中可真熱鬧奕删,春花似錦、人聲如沸疗认。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽横漏。三九已至谨设,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缎浇,已是汗流浹背扎拣。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留素跺,地道東北人二蓝。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像指厌,于是被迫代替她去往敵國和親刊愚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容