暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle开发者性能第2课:什么是数据库统计信息?

甲骨文云技术 2023-02-27
319


写在前面:小编的话

数据库统计信息,有时也称为优化器统计信息。最初,决定如何执行SQL语句由RBO(Rule Based Optimizer)决定,Oracle 7以后改为由CBO(Cost Based Optimizer)决定。CBO即选择成本最低的执行计划。


成本表示给定计划的估计资源使用量。成本越低,执行计划的效率就越高。为了让基于成本的优化器准确地确定一个执行计划的成本,它必须有关于在 SQL 语句中访问的所有对象(表和索引)的信息,以及关于将运行 SQL 语句的系统(CPU和I/O)的信息。这些信息被称为Optimizer Statistics(优化器统计信息)。


了解和管理优化器统计信息是优化 SQL 执行的关键。了解何时以及如何收集统计数据对于性能至关重要。


在正式上课之前,我们还是要强调一下如何学习这些课程。我们做的最主要的工作是将Dev Gym上的视频翻译为中文。实际上每一节课包括4部分:

1)看我们翻译的视频,每一集只有几分钟。

2)上Live SQL做配套练习

3)小测验(选择题)

4)进一步学习(参考资料)


这4部分都是精心设计的,特别是第2和3部分,非常有助于对课程内容的理解,而且由于原网站有完整的评分积分,因此我们希望您在看完视频后,仍回到Dev Gym(https://devgym.oracle.com/)网站完成练习和测验,而且最终可以得到结业证书。点击文末“原文链接”可访问原课程页面。


以下为开发者性能课的课程设置:

第1课: 如何解读执行计划 

第2课: 什么是数据库统计信息<- 我们在这里

第3课: 我的查询做了多少工作?

第4课: 如何创建索引

第5课: 为什么我的查询不使用索引?

第6课: 如何使用物化视图快速汇总数据

第7课: 联接如何工作?

第8课: 如何更快地插入、更新和删除

第9课: 如何查找慢 SQL


好了,下面正式开始上课。


Oracle开发者性能第2课:数据库统计信息



写在后面:小编的话

基本统计信息包括行数,不同值的数量。对于行数较多,数据分布不均匀的表,还需要搜集扩展统计信息。这里所谓的数据分布不均匀,典型的情形包括数据偏离(Data Skew)和关联列(Correlated Columns)。而数据偏离又包括取值偏离(Value Skew)和范围偏离(Range Skew)。


如果真正理解了本课的内容,您应该可以回答以下问题:

1. 什么是选择性(Selectivity)?

2. 什么是基数(Cardinality)?

3. 优化器确定联结(Join)顺序时和选择性的关系,书写SQL语句中WHERE条件时对选择性的考虑。

4. Oracle数据库会自动搜集统计信息吗?何时需要手动搜集统计信息?


视频的配套练习,大家可以在课程页面上登录Live SQL去做,也可以在独立的数据库环境中做,可参考我的博文(1)。在Oracle Blogs网站,Maria Colgan有一篇介绍扩展统计信息的文章(2),Nigel Bayliss有一篇介绍Oracle如何生成直方图的文章(3),也建议大家阅读。


好了,今天的课程就到这里,祝大家学习愉快!


参考链接:

(1) https://blog.csdn.net/stevensxiao/article/details/120957519

(2) https://blogs.oracle.com/optimizer/post/extended-statistics

(3) https://blogs.oracle.com/optimizer/post/how-does-the-oracle-database-choose-what-histograms-to-create


编辑,字幕翻译:萧宇

字幕制作&版式设计:Barbara Huang

最后修改时间:2023-02-27 09:46:07
文章转载自甲骨文云技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论