我想调整一个过程,该过程具有大量动态 SQL 语句,这些语句执行时间过长。我需要帮助来调整这些或一些替代解决方案。
例子:
EXECUTE IMMEDIATE 'CREATE TABLE C1_LAN_GTT_1 NOLOGGING PARALLEL 4 AS
SELECT /*+INDEX(C,CR_DECISION_M_CD1)*/ A.AGREEMENTID,
A.AGREEMENTNO, A.LESSEEID, A.PRODUCTFLAG, A.APP_FORMNO, A.AMTFIN
FROM LEA_AGREEMENT_DTL A, CR_DECISION_M C
WHERE A.AGREEMENTID = C.APPID
AND A.STATUS = ''A''
AND TRUNC(C.AUTHDATE) BETWEEN' || '''' || P_FROM_DATE || '''' ||
' AND ' || '''' || P_TO_DATE || '''';
当我在 PLSQL Developer 中以调试模式检查过程时,我发现这些动态语句花费了太多时间。
查询没有数据仍然需要时间来执行。