热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CBORBOOracle10gandSpeed

CBORBOOracle1

在Itpub上有朋友问到这样一个问题:


拿expert 的例子在10g上测验绑定变量的问题.
发现如果不使用绑定慢许多(这个没问题),我们的机器肯定要好于当时作者的机器,(但是)结果(却比作者慢很多)如下:

不使用绑定变量要36.33秒..
使用绑定变量0.50秒..

而作者的测试分别为:
不使用绑定变量14.86 seconds...
使用绑定变量1.27 seconds...


到底是什么原因差距这么大?

首先我们需要知道,使用绑定变量,降低硬解析,通常可以提高系统的性能。

对于这个问题,我们需要知道,从Oracle9i到Oracle10g,Oracle有一个非常显著的变化,那就是放弃RBO,全面引入了CBO。
正是这一变化导致了以上差异的存在。

在Oracle9i中,通常我们不会收集系统的统计信息,这使得对于all_objects的查询会使用RBO,而在Oracle10g中,缺省的会使用CBO优化器。
对于反复的硬解析,统计信息、柱状图信息的判断以及执行计划的选择使得性能急剧下降。

下面我的测试结果中,你可以清楚的看到这些差别,在增加了rule提示以后,速度明显增加:


推荐阅读
author-avatar
-苏小澄11m
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有