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