哪位高人遇到过这个问题啊,我们用weblogic配置jdbc链接池访问oracle,但是每次weblogic启动后第一次访问的sql都非常慢
比如程序一个10个sql,这些sql第一次运行都要超过10秒,第2次就2秒以下了。
oracle是10g的。weblogic还配置了其他db的链接池,都没有问题,唯独外部db的池有这个问题。
因为这个外部db是在别的地方,不属于我们管理,也无法看执行计划,我们只知道都是view,而且view还是比较复杂的。
是否有结果集缓存的原因,使得第一次非常慢哪?但是结果集缓存是在11g才有的。
比如程序一个10个sql,这些sql第一次运行都要超过10秒,第2次就2秒以下了。
oracle是10g的。weblogic还配置了其他db的链接池,都没有问题,唯独外部db的池有这个问题。
因为这个外部db是在别的地方,不属于我们管理,也无法看执行计划,我们只知道都是view,而且view还是比较复杂的。
是否有结果集缓存的原因,使得第一次非常慢哪?但是结果集缓存是在11g才有的。
解决方案 »
- oracle10g system 远程登录提示insufficient privileges,怎么回事?
- oracle 可以这样异常处理吗
- 求SQL大神解决问题,急急急
- 求教高手建立临时表问题
- 调用存储过程出错现象:在存储过程中使用not in ()方式引用传入字符型值(字符型值之间使用“,”分隔)时总是出错。对于传值应注意什么事
- 说个题外话,大家不介意吧!
- 进不进来随你~!
- 請問oracle的日志記錄在什麼地方?
- 我对Oci 接口函数中 handle 及其属性的理解,是否正确?
- shrink space 和 trigger
- 海量 数据 数据库 选择
- 在百度上面只有一条与此相关的信息,跪求寻高手解答
你说的是语法检查生成执行计划等这些事情对么?这些事情会花费8秒以上时间么?
此外,发生这个问题的时候,db并没有重启过,那是外部数据库,不动的。只是我们每次重启weblogic以后,第一请求应用程序发现的。后面就正常的。
硬解析应该是针对db全局的吧,不会是session级别的吧?
weblogic上还配置了其他几个连接池,不过是本地数据库,配置选项上都一样的,初期实例都是大于0的。看了cache相关的选项也没什么特别的
第一次慢那是正常的, 慢主要在两块: 一是SQL的分析(语法,语意,词法,等等,然后还要pin到share pool, 然后生成执行计划)都是要时间的. 二是IO的发生,读数据从磁盘到cache中.
第二次这些就省了第一次查询, 会涉及到很多physical io, 第二次的话,,大部分block都在cache中, 不需要phisical io了.. 速度就快很多了.
http://forum.csdn.net/SList/Middleware/
IO发生的说法不理解,oracle 10g没有结果集缓存,只是执行计划的缓存而已吧?