mybatis代码如下:
SELECT * FROM server_log s WHERE
(s.createTime >= to_date(#{startTime},'yyyy-MM-DD') and s.createTime <= to_date(#{endTime} ,'YYYY-MM-DD'))
AND
appSerialNumber=#{appNum}
ORDER BY #{attribute}
控制台输出
14:24:53,527 DEBUG PreparedStatement:27 - ==> Executing: SELECT * FROM server_log s WHERE (s.createTime >= to_date(?,'yyyy-MM-DD') and s.createTime <= to_date(? ,'YYYY-MM-DD')) AND appSerialNumber=? ORDER BY ?
14:24:53,528 DEBUG PreparedStatement:27 - ==> Parameters: 2014-07-02(String), 2014-08-01(String), 0002(String), createTime(String)
在执行这个查询的时候特别慢,用秒表粗略计算了下,大约需要160多秒,然后将控制台SQL语句复制到sqldeveloper中手动补全参数后执行,几乎不到3秒就出结果了,在sqldeveloper中执行的SQL语句如下
SELECT * FROM server_log s WHERE (s.createTime >= to_date('2014-07-02','yyyy-MM-DD') and s.createTime <= to_date('2014-08-01' ,'YYYY-MM-DD')) AND appSerialNumber='0002' ORDER BY createTime;
为什么这个语句在mybatis执行的时候会如此的慢,而用sqldeveloper执行却可以这么快的出结果?
没有积分了,后面我再补上!!!