首先感谢陈卫星老师的免费网络公开课,让我大致了解了sql的执行计划和相应的调优策略(这里主要讲的是思路)。
一、名词解释
1.optimizer(oracle优化器相当于人的大脑)
优化器了解表中列数据的许多重要特征,最显著的是列值的选择性、聚簇因子、柱状图
optimizer_mode={choose|rule|first_rows|first_rows_n|all_rows}
choose|rule:列值的选择性
first_rows|first_rows_n|all_rows:10g后默认all_rows
first_rows:第一行返回结果最快
2.列值的选择性
oracle列值的选择性有2种:rule-based(10g后已淘汰,sysnax and data dictionary-driven)、cost-based(statistics-driven)
3.聚簇因子
聚簇因子就是描述表中的数据与存储区域相关性的一个因子(个人理解)
4.柱状图
优化器通过使用直方图,可以更准确的判断使用什么执行计划最优。
5.统计信息
统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息。比如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于统计信息。
二、sql执行计划
1.parse
a.oracle 先搜索下共享池缓冲区,验证该语句是否执行过,如果是第一次执行,进入下一步
b.检查语法、权限、对象等等
c.oracle优化器会根据数据库存储的类型(partion iot cluster),根据统计信息,基于代价的原则,选择一条最佳路径编译并存储,以便共享
2.bind
绑定变量
3.execute
执行:从数据文件中读取数据块到数据缓冲区
4.fetch
把结果返回给用户
三、优化器执行方式
优化器根据表中列值的选择性、集簇因子、柱状图等重要特征决定是使用索引还是全表扫描。
(图1)
如果数据列具有高度的选择性和低的 clustering_factor,则索引扫描通常是最快的执行方法(参见图1)
(图2)
相反,高 clustering_factor 的数值达到表中的行数 (num_rows),表明这些行的顺序与索引中的顺序不同,索引范围扫描将会需要额外的 I/O。由于 clustering_factor 达到表中的行数,这些行与索引不同步。在此情况下,索引范围扫描会导致大量不必要的 I/O(参见图2 );全表扫描则会高效得多。
四、柱状图
如果表行数据偏差比例比较大,选择柱状图,让优化器自动选择同一张表的不同条件对应不同执行方式
摘自CUUG+自己稍微加工
分享到:
相关推荐
Oracle SQL调优是数据库管理中的核心技能,尤其在大数据量和高并发的业务环境中,优化SQL性能至关重要。本文将深入探讨Oracle SQL调优的关键概念、方法和策略,旨在帮助读者理解并掌握这一技术。 首先,了解SQL的...
Oracle SQL调优是数据库管理员和开发人员提升数据库性能的关键技能之一。在Oracle数据库环境中,SQL调优涉及到优化查询语句,以减少资源消耗,提高数据处理速度,进而改善整体系统性能。以下是一份详细的Oracle SQL...
Maclean讲授的Oracle SQL调优精要,为我们提供了深入理解Oracle SQL调优原理与实践的方法。本文将详细介绍文档中提到的几个关键知识点,包括调优的思想、SQL语句的处理过程、会话执行SQL时的状态以及游标的相关知识...
Oracle SQL调优是数据库管理中的重要环节,它涉及到性能优化、资源利用率以及系统稳定性等多个方面。这个"Oracle SQL 调优健康检查脚本"(sqlhc.sql)显然是一个用于评估和诊断Oracle数据库SQL查询性能的实用工具。...
### Oracle SQL调优详解 #### 一、Oracle执行计划选择 在进行Oracle SQL优化时,首先需要理解Oracle是如何选择执行计划的。Oracle提供了三种主要的执行计划选择方式: 1. **RULE模式**:这是Oracle最早的执行策略...
sql调优 oracle sql调优技术文档
《Oracle SQL调优新思维》是一本深入探讨SQL性能优化的专业资料,涵盖了从理论到实践的全面内容。在Oracle数据库管理中,SQL调优是提升系统性能的关键环节,它涉及了多个方面,包括查询优化、执行计划分析、索引策略...
oracle SQL 调优.emmx
通过以上对Oracle SQL调优的知识点介绍,我们可以了解到SQL语句从创建到执行完成的整个生命周期,以及如何通过优化器和执行计划来提高查询效率。这对于任何从事Oracle数据库管理或开发工作的专业人士来说都是非常...
Oracle SQL调优是数据库性能优化的关键环节,主要目标是提高SQL查询的速度和资源利用效率。在Oracle数据库系统中,有多种方法和策略可以用来优化SQL性能。 首先,我们需要了解Oracle的优化器。优化器是Oracle解析和...
### 实战Oracle SQL调优 hint特性详解 #### 一、Oracle SQL Hint概述 **Hint**是Oracle数据库提供的一种特殊语法,允许用户通过在SQL语句中插入特定的指令来直接影响SQL执行的方式。Hint的设计初衷更多是为了帮助...
oracle sql调优,相信你一定能受益匪浅
Oracle Sql 性能调优 Oracle SQL 性能调优是一个非常重要的课题,它涉及到 Oracle 数据库的性能优化,包括 SQL 语句优化、索引使用优化、多表关联查询操作优化、SQL 执行计划优化等。下面是Oracle SQL 性能调优的...
### Oracle SQL调优:Oracle SQL语句优化详解 在企业级数据库管理中,Oracle SQL语句的性能优化是提升数据库响应速度、降低资源消耗的关键环节。以下是对标题和描述所述知识点的详细阐述: #### 一、理解SQL执行...
【Oracle执行计划和SQL调优】是数据库管理中至关重要的环节,主要涉及到如何高效地运行SQL语句,提高数据库性能。下面将详细讲解执行计划的相关概念以及SQL调优的策略。 1. **Rowid的概念**:Rowid是Oracle数据库中...
Oracle 19C SQL调优是数据库管理员(DBA)日常工作中不可或缺的一部分,它涉及到优化SQL查询性能,提高数据库系统的整体效率。本指南针对Oracle 19C版本,提供了丰富的调优策略和技术,旨在帮助DBA们更好地管理和维护...
《Oracle 19C SQL调优指南》是针对Oracle数据库管理员(DBA)的重要参考资料,尤其适合那些希望提升SQL性能的专业人士。SQL调优是数据库管理中的核心技能,它关乎到系统的响应时间、资源利用率和整体性能。Oracle 19C...
### Oracle的SQL调优宝典 #### 概述 Oracle数据库是业界领先的数据库管理系统之一,在企业级应用中占据着举足轻重的地位。随着数据量的不断增长以及业务复杂度的提升,对Oracle数据库的性能优化变得尤为重要。SQL...
Oracle数据库作为业界广泛使用的数据库管理系统,其SQL调优是提升系统性能的关键环节。"高性能SQL调优"这一主题涵盖了许多相关知识点,包括但不限于以下内容: 1. **SQL优化基础**:SQL查询是数据库操作的核心,...