`
zfcejb
  • 浏览: 21035 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

oracle sql调优

 
阅读更多

 首先感谢陈卫星老师的免费网络公开课,让我大致了解了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调优精要

    Oracle SQL调优是数据库管理中的核心技能,尤其在大数据量和高并发的业务环境中,优化SQL性能至关重要。本文将深入探讨Oracle SQL调优的关键概念、方法和策略,旨在帮助读者理解并掌握这一技术。 首先,了解SQL的...

    oracle sql调优培训大纲

    Oracle SQL调优是数据库管理员和开发人员提升数据库性能的关键技能之一。在Oracle数据库环境中,SQL调优涉及到优化查询语句,以减少资源消耗,提高数据处理速度,进而改善整体系统性能。以下是一份详细的Oracle SQL...

    Maclean 讲 Oracle SQL 调优精要【技术文档】

    Maclean讲授的Oracle SQL调优精要,为我们提供了深入理解Oracle SQL调优原理与实践的方法。本文将详细介绍文档中提到的几个关键知识点,包括调优的思想、SQL语句的处理过程、会话执行SQL时的状态以及游标的相关知识...

    Oracle SQL 调优健康检查脚本

    Oracle SQL调优是数据库管理中的重要环节,它涉及到性能优化、资源利用率以及系统稳定性等多个方面。这个"Oracle SQL 调优健康检查脚本"(sqlhc.sql)显然是一个用于评估和诊断Oracle数据库SQL查询性能的实用工具。...

    oracle sql 调优,全面

    ### Oracle SQL调优详解 #### 一、Oracle执行计划选择 在进行Oracle SQL优化时,首先需要理解Oracle是如何选择执行计划的。Oracle提供了三种主要的执行计划选择方式: 1. **RULE模式**:这是Oracle最早的执行策略...

    oracle sql调优新思维

    《Oracle SQL调优新思维》是一本深入探讨SQL性能优化的专业资料,涵盖了从理论到实践的全面内容。在Oracle数据库管理中,SQL调优是提升系统性能的关键环节,它涉及了多个方面,包括查询优化、执行计划分析、索引策略...

    oracle SQL 调优.emmx

    oracle SQL 调优.emmx

    Oracle SQL调优.pptx

    通过以上对Oracle SQL调优的知识点介绍,我们可以了解到SQL语句从创建到执行完成的整个生命周期,以及如何通过优化器和执行计划来提高查询效率。这对于任何从事Oracle数据库管理或开发工作的专业人士来说都是非常...

    OracleSQL调优[参照].pdf

    Oracle SQL调优是数据库性能优化的关键环节,主要目标是提高SQL查询的速度和资源利用效率。在Oracle数据库系统中,有多种方法和策略可以用来优化SQL性能。 首先,我们需要了解Oracle的优化器。优化器是Oracle解析和...

    实战Oracle SQL调优 hint特性

    ### 实战Oracle SQL调优 hint特性详解 #### 一、Oracle SQL Hint概述 **Hint**是Oracle数据库提供的一种特殊语法,允许用户通过在SQL语句中插入特定的指令来直接影响SQL执行的方式。Hint的设计初衷更多是为了帮助...

    ORACLE SQL调优

    oracle sql调优,相信你一定能受益匪浅

    Oracle Sql性能调优.ppt

    Oracle Sql 性能调优 Oracle SQL 性能调优是一个非常重要的课题,它涉及到 Oracle 数据库的性能优化,包括 SQL 语句优化、索引使用优化、多表关联查询操作优化、SQL 执行计划优化等。下面是Oracle SQL 性能调优的...

    Oracle SQL调优

    ### Oracle SQL调优:Oracle SQL语句优化详解 在企业级数据库管理中,Oracle SQL语句的性能优化是提升数据库响应速度、降低资源消耗的关键环节。以下是对标题和描述所述知识点的详细阐述: #### 一、理解SQL执行...

    ORACLE执行计划和SQL调优

    【Oracle执行计划和SQL调优】是数据库管理中至关重要的环节,主要涉及到如何高效地运行SQL语句,提高数据库性能。下面将详细讲解执行计划的相关概念以及SQL调优的策略。 1. **Rowid的概念**:Rowid是Oracle数据库中...

    ORACLE 19C SQL调优指南 中文版 Oracle DBA

    Oracle 19C SQL调优是数据库管理员(DBA)日常工作中不可或缺的一部分,它涉及到优化SQL查询性能,提高数据库系统的整体效率。本指南针对Oracle 19C版本,提供了丰富的调优策略和技术,旨在帮助DBA们更好地管理和维护...

    Oracle 19C SQL调优指南 中文版 DBA优化利器

    《Oracle 19C SQL调优指南》是针对Oracle数据库管理员(DBA)的重要参考资料,尤其适合那些希望提升SQL性能的专业人士。SQL调优是数据库管理中的核心技能,它关乎到系统的响应时间、资源利用率和整体性能。Oracle 19C...

    高性能SQL调优

    Oracle数据库作为业界广泛使用的数据库管理系统,其SQL调优是提升系统性能的关键环节。"高性能SQL调优"这一主题涵盖了许多相关知识点,包括但不限于以下内容: 1. **SQL优化基础**:SQL查询是数据库操作的核心,...

Global site tag (gtag.js) - Google Analytics