Oracle 11g升级19c 后部分查询功能很慢

*Oracle 11g升级19c 后部分查询功能很慢

今天生产突然有个查询非常慢,日志显示执行了50秒左右,但是从日志中拿出SQL在PLSQL执行,发现用时不到1秒,查看SQL,怀疑是下面几种原因导致

1、使用函数不当

UNIT.UNIT_CODE LIKE CONCAT('%', CONCAT(#{unitCodeOrName}, '%')

修改为 INSTR(INFO.UNIT_CODE, '${unitCodeOrName}') > 0
2、MyBatis解析花费时间较长

原因及参考方案可参考

https://blog.csdn.net/WO8451401/article/details/126948846?spm=1001.2101.3001.6650.3\&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-3-126948846-blog-106021178.235^v43^pc_blog_bottom_relevance_base3\&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-3-126948846-blog-106021178.235^v43^pc_blog_bottom_relevance_base3\&utm_relevant_index=6![在这里插入图片描述](https://file.jishuzhan.net/article/1764298299801604098/8c2ea7639dba42f10d8bc02b950353da.webp)
3、执行SQL驱动不对

升级19c后,默认驱动为19c的,可指定SQL执行的驱动为11g

/*+ OPTIMIZER_FEATURES_ENABLE('11.2.0.4') */

最终经过实际验证,第三种方案顺利解决问题,数据库和程序脚本执行时间基本一致,非常快

相关推荐
bug菌¹9 小时前
滚雪球学Oracle[4.2讲]:PL/SQL基础语法
数据库·oracle
逸巽散人9 小时前
SQL基础教程
数据库·sql·oracle
月空MoonSky9 小时前
Oracle中TRUNC()函数详解
数据库·sql·oracle
Mephisto.java10 小时前
【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
sql·算法·leetcode
全栈师11 小时前
SQL Server中关于个性化需求批量删除表的做法
数据库·oracle
-seventy-12 小时前
SQL语句 (MySQL)
sql·mysql
bug菌¹12 小时前
滚雪球学Oracle[6.2讲]:Data Guard与灾难恢复
数据库·oracle·data·灾难恢复·guard
bug菌¹14 小时前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
coderWangbuer17 小时前
基于springboot的高校招生系统(含源码+sql+视频导入教程+文档+PPT)
spring boot·后端·sql
数据龙傲天18 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql