oracle 编程怎么更新一行,update 语句没有更新一行 为什么执行时间还那么长

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) 这个作业是在存储过程里面跑的,如果要优化的话,有什么好的建议,谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值