Oracle SQL 不知道怎麼優化

2021-08-23 13:40:03 字數 2797 閱讀 8692

merge into ttpvms200 a

using (

select b.com_cd, b.tic_link_id, b.proc_base_dtm, b.area_cd, decode(b.op_cngs_lvl_cd, '0', b.trvl_spd, b.op_trvl_spd) trvl_spd,

decode(decode(b.op_cngs_lvl_cd, '0', b.trvl_spd, b.op_trvl_spd), 0, 0,

case when (round((b.trvl_dist / (decode(b.op_cngs_lvl_cd, '0', b.trvl_spd, b.op_trvl_spd) * y.wghtdist))*y.wghttime,0) < 99999)

then round((b.trvl_dist / (decode(b.op_cngs_lvl_cd, '0', b.trvl_spd, b.op_trvl_spd) * y.wghtdist))*y.wghttime,0)

else 99999

end ) trvl_tm,

b.trvl_dist,

decode(b.op_cngs_lvl_cd, '0', b.cngs_lvl_cd, b.op_cngs_lvl_cd) cngs_lvl_cd, b.patt_trvl_spd, b.patt_trvl_tm, b.patt_cngs_lvl_cd, b.area_base_dtm

from

ttpcms200 b,

(select case when x.src_dist = x.tgt_dist

then 1

else ( select wght_conv

from tcmncd011

where unit_type_cd = 'cmn05'

and src_unit_cd = x.src_dist

and tgt_unit_cd = x.tgt_dist )

end wghtdist,

case when x.src_time = x.tgt_time

then 1

else ( select wght_conv

from tcmncd011

where unit_type_cd = 'cmn07'

and src_unit_cd = x.src_time

and tgt_unit_cd = x.tgt_time )

end wghttime

from

(select a.spd_unit_cd, b.code_param_val1 src_dist, a.dist_unit_cd tgt_dist,

b.code_param_val2 src_time, a.tm_unit_cd tgt_time

from ttmnms001 a, tcmncd002 b

where a.com_cd = 'tic0'

and a.com_def_cd = '00'

and b.catg_cd = 'cmn06'

and a.spd_unit_cd = b.comn_cd

) x

) y

where

b.proc_base_dtm = #procbasedtm#

andb.area_cd = case when #areacd# is null then b.area_cd else #areacd# end

) bon (

a.com_cd = b.com_cd

and

a.tic_link_id = b.tic_link_id

)when not matched then

insert(

a.tic_link_id, a.com_cd, a.proc_base_dtm, a.area_cd, a.trvl_spd,

a.trvl_tm, a.trvl_dist,

a.cngs_lvl_cd, a.patt_trvl_spd, a.patt_trvl_tm, a.patt_cngs_lvl_cd, a.area_base_dtm

)values (

b.tic_link_id, b.com_cd, b.proc_base_dtm, b.area_cd, b.trvl_spd,

b.trvl_tm,

b.trvl_dist,

b.cngs_lvl_cd, b.patt_trvl_spd, b.patt_trvl_tm, b.patt_cngs_lvl_cd, b.area_base_dtm

)when matched then

update set

a.proc_base_dtm = b.proc_base_dtm,

a.area_cd = b.area_cd,

a.trvl_spd = b.trvl_spd,

a.trvl_tm = b.trvl_tm,

a.trvl_dist = b.trvl_dist,

a.cngs_lvl_cd = b.cngs_lvl_cd,

a.patt_trvl_spd = b.patt_trvl_spd,

a.patt_trvl_tm = b.patt_trvl_tm,

a.patt_cngs_lvl_cd = b.patt_cngs_lvl_cd,

a.area_base_dtm = b.area_base_dtm

]]>

不知道怎麼優化提高效率,本人想把子查詢轉換成內連線或者用一種方式提高效率。

最好少用select來完成結果。

請高手來幫忙!

不知道不知道

函式分析 希爾伯特 哥德爾不完備定理 哥德爾不完全性定理一舉粉碎了數學家兩千年來的信念。他告訴我們,真與可證是兩個概念。可證的一定是真的,但真的不一定可證。某種意義上,悖論的陰影將永遠伴隨著我們。無怪乎大數學家外爾發出這樣的感嘆 上帝是存在的,因為數學無疑是相容的 魔鬼也是存在的,因為我們不能證明這...

不知道不知道

函式分析 希爾伯特 哥德爾不完備定理 哥德爾不完全性定理一舉粉碎了數學家兩千年來的信念。他告訴我們,真與可證是兩個概念。可證的一定是真的,但真的不一定可證。某種意義上,悖論的陰影將永遠伴隨著我們。無怪乎大數學家外爾發出這樣的感嘆 上帝是存在的,因為數學無疑是相容的 魔鬼也是存在的,因為我們不能證明這...

不知道怎麼了

不知道怎麼了,不知道要怎麼說,也不知道要說什麼 感覺不是一點點難過 難受的腸子都糾起來了 我不知道該怎麼排解 尤其是在他和我打完 啪嗒 一聲結束通話時 我的心糾結的不知道怎麼形容 是我太在乎了嗎?昨天我那任性的舉動,也許也嚇到他了 可是 和他在一起,心裡輕鬆不起來 更加感覺到,自己真的有點 不學無術...