实际sql语句,其中a表中60000条数据,b表1000条,跟踪用时2秒,如何提高效率,望高手帮忙:
UPDATE FKOGD30 A
SET
A.CRE_DATA_STATUS = '3',
A.FINAL_UPDATETIME = SYSDATE,
A.EXCLUSIVEFG = ?,
A.UPDATED_PERSON = ?,
A.UPDATED_DT = SYSDATE
WHERE EXISTS (SELECT 1 FROM
(SELECT DEBTOR_CODE, OFFICE_CODE, CREDITOR_CODE, CREDIT_CODE
FROM FKOGV3A01
WHERE ID = ?
AND DATA_DIV = '1'
AND DEBTOR_CODE = ?
GROUP BY DEBTOR_CODE, OFFICE_CODE, CREDITOR_CODE, CREDIT_CODE ) B
WHERE A.FACTORING_CODE = ?
AND A.DEBTOR_CODE = B.DEBTOR_CODE
AND A.OFFICE_CODE = B.OFFICE_CODE
AND A.CREDITOR_CODE = B.CREDITOR_CODE
AND A.CREDIT_CODE = B.CREDIT_CODE
)
UPDATE FKOGD30 A
SET
A.CRE_DATA_STATUS = '3',
A.FINAL_UPDATETIME = SYSDATE,
A.EXCLUSIVEFG = ?,
A.UPDATED_PERSON = ?,
A.UPDATED_DT = SYSDATE
WHERE EXISTS (SELECT 1 FROM
(SELECT DEBTOR_CODE, OFFICE_CODE, CREDITOR_CODE, CREDIT_CODE
FROM FKOGV3A01
WHERE ID = ?
AND DATA_DIV = '1'
AND DEBTOR_CODE = ?
GROUP BY DEBTOR_CODE, OFFICE_CODE, CREDITOR_CODE, CREDIT_CODE ) B
WHERE A.FACTORING_CODE = ?
AND A.DEBTOR_CODE = B.DEBTOR_CODE
AND A.OFFICE_CODE = B.OFFICE_CODE
AND A.CREDITOR_CODE = B.CREDITOR_CODE
AND A.CREDIT_CODE = B.CREDIT_CODE
)
UPDATE FKOGD30 A
SET A.CRE_DATA_STATUS = '3',
A.FINAL_UPDATETIME = SYSDATE,
A.EXCLUSIVEFG = ?,
A.UPDATED_PERSON = ?,
A.UPDATED_DT = SYSDATE
WHERE EXISTS (SELECT 1
FROM FKOGV3A01 B
WHERE A.DEBTOR_CODE = B.DEBTOR_CODE
AND A.OFFICE_CODE = B.OFFICE_CODE
AND A.CREDITOR_CODE = B.CREDITOR_CODE
AND A.CREDIT_CODE = B.CREDIT_CODE
AND B.DATA_DIV = '1'
AND B.DEBTOR_CODE = ?
AND B.ID = ?
AND A.FACTORING_CODE = ?);