oracle update太慢優化

2021-08-21 19:42:17 字數 778 閱讀 9534

tb_e_zw_nrllb_temp 量700225

gsm_user  量109398337

--優化前 兩種update

--說明:gsm_user是檢視存在gsm_user_id索引,tb_e_zw_nrllb_temp有user_id索引,使用以下兩種方法都更新時間超5h+導致不能更新成功

--1update tb_e_zw_nrllb_temp t

set t.msisdn = (select  msisdn from from gsm_user a

where to_char(a.gsm_user_id) = b.user_id

and b.settle_month = p_month_id))

where .settle_month = p_month_id;

--2merge into tb_e_zw_nrllb_temp t

using gsm_user a

on (to_char(a.gsm_user_id) = t.user_id  )

when matched then

update set

t.msisdn =   a.msisdn

where t.settle_month = p_month_id;

commit;

--優化後

--優化後時間耗費主要在insert上,insert的select查詢比較快,因此又想辦法優化insert,大致如下

oracle update多表關聯

update a.a3 a.a3 b.b3 的問題 表a 結構 a1 a2 a3 表b 結構 b1,b2,b3 其中 a1 b1 為pk 切值相同 就是可以使用a1 b1 了.請問用sql 語句或過程該如何實現如下的功能?更新a 表的 a3 用a.a3 與b.b3之和更新.3 update a se...

oracle UPDATE 多表關聯更新

update customers a set city name select b.city name from tmp cust city b where b.customer id a.customer id where exists select 1 from tmp cust city b ...

Oracle update時做表關聯

感覺還是sqlserver中的寫法比較好理解,oracle的寫法都快把我搞暈了,注意 1.要修改的表,不要加入到子查詢中,用別名在子查詢中與其他表進行關聯即可。2.exsits不能少,exsits後面的子查詢與上乙個子查詢裡的內容相同即可。update table1 t1 set t1.name s...