ORACLE绑定变量窥视有什么作用?
来源:互联网 发布:淘宝模板代码制作 编辑:程序博客网 时间:2024/04/30 11:16
ORACLE绑定变量窥视有什么作用?
在OLTP系统中绑定变量性能的提高很明显,这个大家都清楚,但是绑定变量有时也会产生一些不好的执行计划,特别是需要直方图的列。
从ORACLE9i开始提供了绑定变量窥视的功能,就是在ORACLE第一次解析SQL时会将变量的真实值代入产生执行计划,以后对所有的同样的绑定变量SQL都采用这个执行计划了。
如果第一次的真实值恰好是比较特殊的值,那这将严重影响产生的执行计划和以后的执行效率.
如果第一次的真实值是比较普通的值,产生的计划还是一样,那个这个窥视起什么作用呢?
对于oracle11g提供新的特性自适应游标共享(Adaptive Cursor Sharing),对于一个同样绑定变量的SQL可以有多个执行计划,从而达到动态优化执行计划的作用,这个还没有真正试过。
不过根据描述感觉oracle11g要实现这个效果对每个SQL的解析及内存都增加了,另外以后对于同样的SQL要增加直方图的判断,执行计划CUBE的判断,如果结果不一样那就优化了,但如果判断的结果一样,那等于重复做了这些工作,感觉实际应用中99.9%的结果是一样的,所以11g这样做增加内存增加每个SQL的判断时间值不值,特别是对于高并发的业务系统,大部份的SQL的执行时间都很小。
不过根据描述感觉oracle11g要实现这个效果对每个SQL的解析及内存都增加了,另外以后对于同样的SQL要增加直方图的判断,执行计划CUBE的判断,如果结果不一样那就优化了,但如果判断的结果一样,那等于重复做了这些工作,感觉实际应用中99.9%的结果是一样的,所以11g这样做增加内存增加每个SQL的判断时间值不值,特别是对于高并发的业务系统,大部份的SQL的执行时间都很小。
对上都只是我的假想,不过感觉绑定变量窥视的作用的真的不明显,在OLTP系统中对于特殊值还是不用绑定变量更好,在OLAP中如果特殊值很多建议不要用绑定变量更好。11g的改进不太清楚效果,不过感觉成本比较高。
2008-03-21
MKing
- ORACLE绑定变量窥视有什么作用?
- 绑定变量窥视
- bind peeking--绑定变量窥视
- static变量有什么作用
- Oracle绑定变量的作用
- 基础知识之绑定变量窥视----BIND PEEKING
- 什么是绑定变量,有什么优缺点?
- static(静态)变量有什么作用?
- oracle 绑定变量的作用和应用
- oracle中触发器有什么作用
- Oracle 中的SID是什么意思?有什么作用?
- Oracle的储存过程有什么作用
- Oracle 中的SID是什么意思?有什么作用?
- Oracle 中的SID是什么意思?有什么作用?
- 定义为volatile的变量有什么作用
- 不均衡分区和绑定变量窥视导致的查询计划错误
- 不均衡分区和绑定变量窥视导致的查询计划错误
- SQL优化【基础07】 - 绑定变量窥视与自适应游标共享
- ssh keygen 免輸入密碼
- 求 助!
- 求 助!
- 求 助!
- 求 助!
- ORACLE绑定变量窥视有什么作用?
- 工作初期随想
- RMI 基础知识--转自百度百科
- SAP 随机密码生成函数
- js 验证
- 想不到,老机器竟然用上了Windows2008!还装上了集成显卡驱动!
- USB枚举过程
- 渐渐远去的日子
- Excel 文件上传到abap 内表