ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 同一SQL为何运行速度相差非常大

同一SQL为何运行速度相差非常大

原创 Linux操作系统 作者:fengjin821 时间:2009-06-14 18:59:25 0 删除 编辑

      最近发现公司一报表系统(浏览器访问的)的某一个功能运行有问题,运行很长时间没有结果,报了ORA-01555错误。把这段SQL抓出来后在PL/SQL DEVELOPER中运行,需要10秒钟出来结果。
同样的SQL为何在不同地方运行速度相差这么大呢?会是什么原因造成的
 
      PL/SQL DEVELOPER中执行时走的是嵌套循环联结,而web访问时走的hash。在pl/sql developer中我又把具体时间替换成变量符号(:b1,:b2)时,发现执行计划也变成了hash join了
 
---------------------------------------------------------------------------------------------
 
 
1. 01555并不是那么严重的错误。。。仅仅就是跑不出来而已
 
2. 对于楼主的要求,看来用outline是最好的解决办法,因为不能改code。

3. 在系统层面改optimizer_index_cost_adj会影响其他SQL,危险性较大。

4. 可以试试搜集下统计信息,用CBO来试试。如果不行,就rollback delete
 
stats,还是用outline吧。。。11g可以考虑下sql profile,不过稳定性还是不如
 
outline

 

 

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13165828/viewspace-606345/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-29

  • 博文量
    191
  • 访问量
    506724