Druid版本: 1.1.22 druid配置如下: initialSize:50 minIdle:50 maxActive:500 maxWait:20000 queryTimeout:30 timeBetweenEvictionRunsMillis:120000 minEvictableIdleTimeMillis:240000 maxEvictableIdleTimeMillis:1200000 validationQuery:SELECT 'x' FROM DUAL poolPreparedStatements:true maxOpenPreparedStatements:50 removeAbandoned:true removeAbandonedTimeout:300 logAbandoned:true testWhileIdle:true testOnBorrow:true testOnReturn:false timeBetweenConnectErrorMillis:300000 filters:stat,slf4j,wall connectionProperties:druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
Oracle版本: 11.2.0
问题: Oracle里有个SQL 视图,然后查询视图,查询出的结果不是想要的结果,然后修改视图,通过druid数据源查询出的结果也不是想要的,druid数据源查询出的结果还是历史某个SQL版本的结果,中间视图修改多次了,查询出的结果始终是历史中的某个版本。但通过PLSQL查询,查出的结果是最新的。 然后把druid中的那个数据源销毁,重新创建数据源就能查询出最新的SQL结果了。然后继续修改视图的SQL,通过新的数据源查出来也都是最新的视图SQL的结果。
怀疑 :是不是 poolPreparedStatements 设置为true 引起的,视图的执行语句缓存还是缓存在druid里?是不是poolPreparedStatements设置成false,maxOpenPreparedStatements设置为0就能解决此问题