2 lhzxuewen lhzxuewen 于 2017.09.20 10:43 提问

oracle更新语句怎么优化?

更新借据表中的“单位性质”字段,借据表中一共有36000多条数据,相应的数据表对应的字段都加了索引,我使用以下语句执行了20多分钟都没有结束,可以怎么优化啊?求助!!!
UPDATE ACCT_LOAN_RECOVER REC ----借据表
SET REC.COMPANYTYPE =
(SELECT DECODE(INDIV_EMP_TYP,
'A',
'政府机关',
'B',
'国有企业',
'C',
'民营企业',
'E',
'微型企业',
'G',
'无固定单位',
'H',
'事业单位',
'无') INDIV_EMP_TYP
FROM LC_APPT_INDIV INDIV ----客户申请表
JOIN LC_APPL_APPT APPT ----主客户申请表
ON INDIV.APPT_SEQ || INDIV.APPL_SEQ =
APPT.APPT_SEQ || APPT.APPL_SEQ
JOIN LPB_APPL_DN APPL ----放款申请表
ON APPT.APPL_SEQ = APPL.APPL_SEQ
WHERE APPT.APPT_TYP = '01' ----类型为主客户
AND APPL.LOAN_NO = REC.SERIALNO)
where REC.COMPANYTYPE IS NULL;

2个回答

b100522
b100522   2017.09.20 11:28
 等着吧
lhzxuewen
lhzxuewen   2017.09.20 16:59

问了不少同事,最后解决了,将字段的条件拼接拆开,INDIV.APPT_SEQ || INDIV.APPL_SEQ =
APPT.APPT_SEQ || APPT.APPL_SEQ 改为 INDIV.APPT_SEQ=APPT.APPT_SEQ and INDIV.APPL_SEQ =APPT.APPL_SEQ,这样执行效率就快多了,最后差不多几秒钟就更新完了,对DDL的理解多一点真的好重要!!

Csdn user default icon
上传中...
上传图片
插入图片