*Oracle 11g升级19c 后部分查询功能很慢
今天生产突然有个查询非常慢,日志显示执行了50秒左右,但是从日志中拿出SQL在PLSQL执行,发现用时不到1秒,查看SQL,怀疑是下面几种原因导致
1、使用函数不当
UNIT.UNIT_CODE LIKE CONCAT('%', CONCAT(#{unitCodeOrName}, '%')
修改为 INSTR(INFO.UNIT_CODE, '${unitCodeOrName}') > 0
2、MyBatis解析花费时间较长
原因及参考方案可参考
升级19c后,默认驱动为19c的,可指定SQL执行的驱动为11g
/*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.4') */
最终经过实际验证,第三种方案顺利解决问题,数据库和程序脚本执行时间基本一致,非常快