量化的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 条评论
登录 后参与评论

相关文章

来自专栏带你撸出一手好代码

sql连接查询中on筛选与where筛选的区别

sql查询这个东西, 要说它简单, 可以很简单, 通常情况下只需使用增删查改配合编程语言的逻辑表达能力,就能实现所有功能。 但是增删查改并不能代表sql语句的所...

3398
来自专栏java一日一条

mysql数据库开发常见问题及优化

mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。在使用 mysql ...

772
来自专栏程序人生 阅读快乐

SQL Server从入门到精通.pdf

《SQL Server从入门到精通》从初学者的角度出发,通过通俗易懂的语言、丰富多彩的实例,详细地介绍了SQL Server 2008开发应该掌握的各方面技术...

1342
来自专栏数据库

不得不看,只有专家才知道的17个SQL查询提速秘诀!

“ 除非你遵循本文介绍的这些技巧,否则很容易编写出减慢查询速度或锁死数据库的数据库代码。 ? 由于数据库领域仍相对不成熟,每个平台上的 SQL 开发人员都在苦苦...

2016
来自专栏玩转JavaEE

vhr部门管理数据库设计与编程

项目地址:https://github.com/lenve/vhr 好了,那我们本文主要来看看数据库的设计与存储过程的编写。 部门数据库整体来说还是比较简单,如...

4096
来自专栏小俊博客

纯代码实现WordPress邀请码功能

2855
来自专栏Java学习123

mysql数据库开发常见问题及优化

2921
来自专栏Linyb极客之路

mysql数据库开发常见问题及优化

mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。在使用 mysql ...

651
来自专栏性能与架构

这个场景更适合使用NoSQL

NoSQL的一个主要类型就是文档型NoSQL,例如 MongoDB,使用 json 结构存储数据,不需要事先定义好记录结构,自由添加删除记录中的某项,非常灵活 ...

3974
来自专栏架构师之路

58同城mysql实战(纯干货)

《大数据量下,58同城mysql实践》 WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同...

5035

扫码关注云+社区