0

量化的Oracle世界

2013-06-21
97

Oracle数据库最为复杂的部分是优化器算法,在进行SQL解析的过程中,Oracle将一切都通过数字进行量化,然后评估比对,最后进行选择。在版本更新中,往往这部分的变化最大,但是文档最少,甚至于无。Oracle常常在出现问题的时候告诉用户,这里包含一个新的特性,可以通过某个参数进行开关,Oracle的复杂与强大都在这其中体现。


Oracle在这个级别上的控制已经细致入微,深入骨髓,今天分析的一个案例就又体验了一次。Oracle有一个参数 _optimizer_rownum_pred_based_fkr ,连在一起很复杂,翻译过来就是:优化器在使用ROWNUM谓词进行查询时,是否启用基于选取行数的优化(First K rows).缺省的这个特性是启用的。


在这个参数的作用下,你可能发现,有时候明明一个SQL全表扫描的成本低于索引,但是Oracle仍然选择了索引,这就是这个参数发挥了调节作用。


与此类似的案例很多,Oracle的控制细节可见一斑。

「喜欢文章,快来给作者赞赏墨值吧」
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部