sql语句慢查询--PLSQ执行同样的sql,使用mybatis进行动态拼装执行的时候非常慢的问题解决

昨天遇到一个bug,有一个地方的列表展示需要15秒的时候才会出现数据,一开就想到是sql慢查询,想着是不是进过全表扫描而引起的,想到in,null.!等等的关键字,尝试无果这时候想到自己是个管理系统,数据再多也不会太慢.再说这个sql有个判断,查询已审阅的没问题,查询未审阅的就有.想了很久,debug一步一步的更发现
DynamicSqlSource类中的getBoundSql方法中的
DynamicContext context = new DynamicContext(this.configuration, parameterObject);
this.rootSqlNode.apply(context);
这是作用于sql拼接,这里执行了很久.这就是sql拼接的问题
在这里感谢 古月
https://blog.csdn.net/huyande123/article/details/105054029/
给了思路.
修改sql拼接的方法
where d.preedit_id = #{preedit_id, jdbcType=VARCHAR} 改为
where d.preedit_id = '${preedit_id}'
解决了拼接sql时候慢的问题

image.png

ok了!!!

你可能感兴趣的:(sql语句慢查询--PLSQ执行同样的sql,使用mybatis进行动态拼装执行的时候非常慢的问题解决)