update b_ai_pr_risk_sort_curr_result a
set a.sort_end_date = (select b.sort_end_date
from s_ai_pr_risk_sort_curr_result b
where a.source_system_id =
decode(b.source_system_id,
15,
2,
b.source_system_id)
and a.branch_no = b.branch_no
and a.loan_accounts = b.loan_accounts
and a.end_date =
to_date('99991231', 'yyyymmdd')
and b.begin_date =
to_date('20080630', 'yyyymmdd'))
where exists (select 1
from s_ai_pr_risk_sort_curr_result c
where a.source_system_id =
decode(c.source_system_id, 15, 2, c.source_system_id)
and a.branch_no = c.branch_no
and a.loan_accounts = c.loan_accounts
and c.begin_date = to_date('20080630', 'yyyymmdd')
and a.end_date = to_date('99991231', 'yyyymmdd'));
说明:
用表:s_ai_pr_risk_sort_curr_result每天的增量 更新b_ai_pr_risk_sort_curr_result 全量的一个字段
s_ai_pr_risk_sort_curr_result每天的增量 :70万左右
b_ai_pr_risk_sort_curr_result 全量的 : 4000万左右
每天的更新量也70万左右
2. 问题
(1) 我测试的时候传入一个表s_ai_pr_risk_sort_curr_result 没有的日期,所以更新0行,但是时间用了5分钟左右
(2) 这个作业是在存储过程里面跑的,如果要优化的话,有什么好的建议,谢谢