原代码中有:
inner join MD_ACCOUNTSUBJECT MD_ACCOUNTSUBJECT
on GL_VOUCHERITEM.SUBJECTID = MD_ACCOUNTSUBJECT.RECID
inner join MD_ACCOUNTSUBJECT MD_ACCOUNTSUBJECT1
on utl_raw.substr(MD_ACCOUNTSUBJECT.PARENTS, 1, 17) =
MD_ACCOUNTSUBJECT1.PARENTS
and MD_ACCOUNTSUBJECT.ACCTYEAR = MD_ACCOUNTSUBJECT1.ACCTYEAR
查询时会耗费很多时间,因为MD_ACCOUNTSUBJECT 过十万的数据,这个地方能不能修改一下?
1、有where子查询语句中是否有关于这个MD_ACCOUNTSUBJECT表的判断,有的话,
在inner join 后面查询表时先用判断处理,缩小范围。
2、你看一下,是否命中索引了。
3、utl_raw.substr(MD_ACCOUNTSUBJECT.PARENTS, 1, 17)是否有其他替代方案。