日期:2014-05-17  浏览次数:21116 次

求解高手,oracle存储过程执行查询的性能
 请问存储过程中下面哪种方式查询性能效率高些:
一:
    sqlstr := 'select id,name,sex,address,postcode,birthday from student   
        where id=:w_id'; 
   open cur_rs for sqlstr   using i_id;

二:
    open cur_rs for select id,name,sex,address,postcode,birthday from   
      student where id=i_id;   


注意是在存储过程中,cur_rs 是结果返回游标,i_id是入参
性能优化 Oracle 存储 select

------解决方案--------------------
不是必须情况,没必要动态拼SQL。

如果考虑性能,一定要清楚用查询结果来做什么,用大SQL调优后的效果要比用cursor好。
------解决方案--------------------
能用静态sql就用静态sql。。。动态sql是必须得用的时候才用。。
------解决方案--------------------
引用:
能用静态sql就用静态sql。。。动态sql是必须得用的时候才用。。


同意。。。
------解决方案--------------------
引用:
但是又有人说如果查询没有条件,用静态sql比较好,但有条件的话,用绑定变量性能好些,不知道是这样的不???


绑定变量通常来说性能会好些,但是要看具体应用。有的绑定变量能够提升SQL性能,有的能使SQL性能下降,这样的例子很多,楼主可以百度一下