如题

解决方案 »

  1.   

    SQL会被优化器解析,过程里的SQL不一定保证最优解析。变量绑定时只有传入值才能得到,可能无法分析统计信息,写死到SQL里一定可以分析统计信息。
      

  2.   

    百度oracle 11g 扩展的游标共享
    总之使用绑定变量会影响查询优化器做出正确的选择
      

  3.   

    这是由于条件字段的数据不均衡,在某些情况下全表扫描效率高,而另外些情况下走索引效率高,使用了绑定变量,oracle就会在第一次解析时根据传入的变量值生成执行计划,而这时传入的值适合于全表扫描,那么以后就一直使用这个执行计划。
    解决方法:
    1.使用提示强制索引。
    2.直接传值,不使用绑定变量,或者只对数据异常的值不使用绑定变量。