求oracle 动态绑定 存储过程例子

编程小强 2013-03-14 05:02:08
看书的时候经常看到说动态绑定sql执行效率高,但是自己还是疑惑它能比一般静态代码执行还快吗(次数少),

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

希望大家一起交流分享,我的email:ouyangpeng1012@gmail.com
...全文
481 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程小强 2013-03-19
  • 打赏
  • 举报
回复
算了,给分吧
编程小强 2013-03-15
  • 打赏
  • 举报
回复
版主有没有自己写的存储过程,运用动态绑定比较好的,发给我学习学习行么?
没_没_没超疯 2013-03-15
  • 打赏
  • 举报
回复
说动态绑定比较好是拿来跟没有用动态绑定的语句来比的,即动态绑定节省了每次语句解析的时间。
linwaterbin 2013-03-14
  • 打赏
  • 举报
回复
引用 2 楼 l2tp1012 的回复:
但是我记得书上说静态sql执行速率比动态速率要高,如果这段sql执行的次数不是很多,我想用静态方法不失为一种更好的选择
动态sql 是运行时解析,理论上会慢一些
编程小强 2013-03-14
  • 打赏
  • 举报
回复
但是我记得书上说静态sql执行速率比动态速率要高,如果这段sql执行的次数不是很多,我想用静态方法不失为一种更好的选择
xinpingf 2013-03-14
  • 打赏
  • 举报
回复
这个意思是说,同样的语句如果只是参数不同,尽量使用绑定变量代替,然后在执行的时候将具体值传给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次硬解析。 无论执行多少次,解析语句的成本只有一次。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧