量化的Oracle世界

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

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

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

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

原文发布于微信公众号 - 数据和云(OraNews)

原文发表时间:2013-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

PLC的编程语言以及PLC相关常见缩写

虽然梯形逻辑是最常用的PLC编程语言,但并不是唯一的。下表列出了用于编程PLC的一些语言。 ? 梯形图(LD)传统梯形图逻辑是图形化编程语言。最初使用模拟继电器...

3475
来自专栏Crossin的编程教室

【Python 第41课】 用文件保存游戏(3)

你的小游戏现在已经可以保存成绩了,但只有一组成绩,不管谁来玩,都会算在里面。所以今天我还要加上一个更多的功能:存储多组成绩。玩家需要做的就是,在游戏开始前,输入...

2324
来自专栏程序员互动联盟

公司用实习生做什么?

疑惑一 如何规划程序员的职业生涯? 很多小伙伴都觉得程序员的工作比较神秘,那么程序员的职业生涯该如何规划?如何让自己的职业生涯有着更好的规划。 第一步选择一个方...

3279
来自专栏杨建荣的学习笔记

复杂SQL性能优化的剖析(二)(r11笔记第37天)

昨天的一篇文章复杂SQL性能优化的剖析(一)(r11笔记第36天) 分析了一个SQL语句导致的性能问题,问题也算暂时告一段落,因为这个语句的执行频率是1...

3479
来自专栏CSDN技术头条

4个简单的数据管理技巧

它发生在我们所有人身上,你会收到新的A/B测试结果和需要验证的数据。或者你将最新漏斗分析转化到一个数据应用中,这样就可以不断地收获你努力工作带来的好处。当在检查...

18310
来自专栏Python小屋

Python读取Excel文件统计演员参演电影

假设有个Excel 2007文件“电影导演演员.xlsx”,其中有三列分别为电影名称、导演和演员列表(同一个电影可能会有多个演员,每个演员姓名之间使用逗号分隔)...

3018
来自专栏数据和云

新书连载:Oracle数据库的跟踪和分析方法

编辑说明:《Oracle性能优化与诊断案例精选》出版以来,收到很多读者的来信和评论,我们会通过连载的形式将书中内容公布出来,希望书中内容能够帮助到更多的读者朋友...

3199
来自专栏Netkiller

传统数据库也能实现区块链存储

传统数据库也能实现区块链存储 本文节选自电子书《Netkiller Architect 手札》,延伸阅读《Netkiller Blockchain 手札》 最近...

39810
来自专栏Java修行之道

sql连接查询(inner join、full join、left join、 right join)

需求:查询哪个顾客(customer_name)在哪一天(create_time)消费了多少钱(money)

984
来自专栏Kevin Chen

大数据计算中复杂存储过程的替代方案

以往的数据结构和业务逻辑比较简单,所以单条SQL语句就可以实现业务的需要。但随着技术的进步,用户计算的复杂程度也越来越高。要实现复杂的计算,单条SQL语句就显得...

4077

扫描关注云+社区