记录日期: 2014-07-30 14:25:27
题记:
最近一个同事说一个更新语句很慢求助与我,我看了下,这类语句的优化具有典型的代表性,于是记录下来和大家共享下。
原sql语句:
DECLARE
V_PARTYNO VARCHAR2(20);
V_APP_MP VARCHAR2(20);
V_INTIME DATE;
V_CNT INT;
BEGIN
FORCUR IN(SELECTAPPLICATION_NO FROMFRAUD_SCORE) LOOP
SELECTMAX(PARTY_NO),
MAX(MOBILE_PHONE_NO),
MAX(IMPORT_CPPCDM_TIME)
INTOV_PARTYNO,
V_APP_MP,
V_INTIME
FROMRISKREPT.RKO_CDM_PROCESS
WHEREAPPLICATION_NO = CUR.APPLICATION_NO;
SELECTCOUNT(1)
INTOV_CNT
FROMRISKREPT.RKO_CDM_PROCESS
WHEREPARTY_NO = V_PARTYNO
ANDMONTHS_BETWEEN(V_INTIME,
IMPORT_CPPCDM_TIME) <= 12;
UPDATEFRAUD_SCORE
SETAPP_LOANCARD_NUM = V_CNT
WHEREAPPLICATION_NO = CUR.APPLICATION_NO;
COMMIT;
ENDLOOP;</