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

求oracle 动态绑定 存储过程例子
看书的时候经常看到说动态绑定sql执行效率高,但是自己还是疑惑它能比一般静态代码执行还快吗(次数少),

想看看大家写的比较好的动态绑定存储过程例子,学习学习

希望大家一起交流分享,我的email:ouyangpeng1012@gmail.com
oracle?

------解决方案--------------------
这个意思是说,同样的语句如果只是参数不同,尽量使用绑定变量代替,然后在执行的时候将具体值传给sql语句,这样可以减少sql语句的硬解析——而硬解析是很耗资源的……

例如
select * from table1 where id = 1;

select * from table1 where id = 2;

这样简单的两条语句,在缺省情况下是不能够共享的。也就是说,系统认为这是两条不同的语句,两条语句需要分别解析。——如果类似的语句很多,这个成本就呈线性上涨

但是如果你使用参数

select * from table1 where id = p_id;
在执行的时候分别给p_id赋值为1和2,这就是相同的语句,相同的语句只需要1次硬解析。
无论执行多少次,解析语句的成本只有一次。
------解决方案--------------------
引用:
但是我记得书上说静态sql执行速率比动态速率要高,如果这段sql执行的次数不是很多,我想用静态方法不失为一种更好的选择


动态sql 是运行时解析,理论上会慢一些
------解决方案--------------------
说动态绑定比较好是拿来跟没有用动态绑定的语句来比的,即动态绑定节省了每次语句解析的时间。
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html