我有Oracle Join查询,选择数据非常慢

时间:2016-12-05 16:49:06

标签: oracle oracle-sqldeveloper pentaho pentaho-spoon

我有一个Oracle连接查询,可以非常慢地选择数据。它像1000行,持续7分钟。请帮助您以不同的方式编写代码,以便更快地提取数据。接下来的步骤是使用Select值并将数据转储到MySQL表中。我在这里使用Pentaho工具。感谢

    select 
null id, 
ss.ILOAN_CODE  ,
ss.INST_NUM  ,
ss.INST_AMT  ,
ss.INST_PRINCIPAL  ,
ss.INST_INTEREST  ,
ss.BALANCE_PRINCIPAL  ,
ss.INST_DUE_DATE  ,
ss.PAID_FLAG  ,
ss.LATE_FEE  ,
ss.PAYMENT_DATE  ,
ss.INST_AMT_PAID  ,
ss.INST_AMT_DUE  ,
ss.REV_CHECK_NUM  ,
ss.REV_CHECK_AMT  ,
ss.CREATED_BY  ,
ss.DATE_CREATED  ,
ss.UPDATED_BY  ,
ss.DATE_UPDATED  ,
ss.INST_DAYS  ,
ss.MATURED_INTEREST  ,
ss.UNPAID_INTEREST  ,
ss.ADJ_INST_PRINCIPAL  ,
ss.ADJ_INST_AMT  ,
ss.ADJ_INST_INTEREST  ,
ss.ADJ_BALANCE_PRINCIPAL  ,
ss.ADJ_MATURED_INTEREST  ,
ss.ADJ_UNPAID_INTEREST  ,
ss.IS_PRINTED  ,
ss.RTN_FEE_AMT  ,
ss.WAIVE_FEE_AMT  ,
ss.LATE_FEE_AMT  ,
ss.APR_BALANCE_PRINCIPAL  ,
ss.ACHDEPOSIT_DATE  ,
ss.ACHRETURN_DATE  ,
ss.ACHCLEAR_DATE  ,
ss.APR_INST_INTEREST  ,
ss.APR_UNPAID_INTEREST  ,
ss.CSO_FEE  ,
ss.MATURED_CSO_FEE  ,
ss.UNPAID_CSO_FEE  ,
ss.CSO_FEE_BALANCE
from  ST_IL_SCHEDULE ss,
    ST_IL_MASTER sm,
    BO_MASTER bm
where  sm.iloan_code = ss.iloan_code
     and sm.bo_code = bm.bo_code 
     and ss.ILOAN_CODE in (select distinct loan_Number from SVP_LOAN_MASTER_INVENTORY) 

1 个答案:

答案 0 :(得分:2)

!MyApplication

这是缓慢的候选人。您在这里不需要function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { var actualType = getTypeForFilter(actual); var expectedType = getTypeForFilter(expected); if ((expectedType === 'string') && (expected.charAt(0) === '!')) { return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); ..... ,也请使用显式联接以提高可读性。

尝试:

filter: {DisplayName:(page.ApplicationSearchValue.indexOf('!') == 0 ? page.ApplicationSearchValue.substring(1) : page.ApplicationSearchValue)}

如果这没有帮助,请考虑在连接中使用的列上创建索引。