oracle where日期条件的类型不同会导致性能下降

 oracle sql语句中如果where日期条件的类型不一致(一种可能是我们传递参数java.util.Date会转成java.sql.Timestamp\java.sql.Date后与数据表的实际类型不一致引起),在执行过程中会进行类型转换,这时候索引及相关优化就不起作用,导致性能变得很差。

觖决方法:

1、使用String 类型传递Date对象 ,sql中显式使用to_date函数(此时要注意如果表原类型是Timestamp,也会引起性能问题)

2、如果是ibatis可以用其Inline Parameter Mapping机制指定参数是DATE,这样就不会转成java.sql.Timestamp

你可能感兴趣的:(oracle,sql,优化,Date,String,ibatis)