`

Oracle性能优化技巧-性能调优

阅读更多

 1.选用适合的ORACLE优化器

中国网管联盟www.bitscn.com

 

    ORACLE的优化器共有3种:

中国网管联盟www_bitscn_com

 

    1.RULE(基于规则) 2.COST(基于成本) 3.CHOOSE(选择性) feedom.net

    设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖。

54com.cn

 

    为了使用基于成本的优化器(CBO, Cost-Based Optimizer) , 你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性。

网管网bitsCN.com

 

    如果数据库的优化器模式设置为选择性(CHOOSE),那么实际的优化器模式将和是否运行过analyze命令有关。 如果table已经被analyze过, 优化器模式将自动成为CBO , 反之,数据库将采用RULE形式的优化器。 feedom.net

    在缺省情况下,ORACLE采用CHOOSE优化器, 为了避免那些不必要的全表扫描(full table scan) , 你必须尽量避免使用CHOOSE优化器,而直接采用基于规则或者基于成本的优化器。

feedom.net

 

    2.访问Table的方式

54ne.com

 

    ORACLE 采用两种访问表中记录的方式: 中国网管联盟www_bitscn_com

    1.全表扫描 中国网管联盟www_bitscn_com

    全表扫描就是顺序地访问表中每条记录。 ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描。 网管网bitsCN_com

    2.通过ROWID访问表 中国网管论坛bbs.bitsCN.com

    你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息……ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系。 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高。

网管联盟www.bitsCN.com

 

    3.共享SQL语句 中国网管联盟www、bitsCN、com

    为了不重复解析相同的SQL语句,在第一次解析之后, ORACLE将SQL语句存放在内存中。这块位于系统全局区域SGA(system global area)的共享池(shared buffer pool)中的内存可以被所有的数据库用户共享。 因此,当你执行一个SQL语句(有时被称为一个游标)时,如果它和之前的执行过的语句完全相同, ORACLE就能很快获得已经被解析的语句以及最好的执行路径。 ORACLE的这个功能大大地提高了SQL的执行性能并节省了内存的使用。 网管网bitsCN_com

    可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。 54com.cn

    数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性也就越大了。

feedom.net

 

    当你向ORACLE 提交一个SQL语句,ORACLE会首先在这块内存中查找相同的语句。

网管联盟www.bitsCN.com

 

    这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同(包括空格,换行等)。 中国网管论坛bbs.bitsCN.com

    共享的语句必须满足三个条件: 54com.cn

    A.字符级的比较: 网管网bitsCN_com

    当前被执行的语句和共享池中的语句必须完全相同。 例如: 中国网管论坛bbs.bitsCN.com

    SELECT * FROM EMP;

中国网管联盟www_bitscn_com

 

    和下列每一个都不同

中国网管联盟www.bitscn.com

 

    SELECT * from EMP; 54com.cn

    Select * From Emp;

54ne.com

 

    SELECT * FROM EMP; 54com.cn

    B.两个语句所指的对象必须完全相同,例如: 中国网管论坛bbs.bitsCN.com

用户 对象名 如何访问
Jack sal_limit private synonym
  Work_city public synonym
  Plant_detail public synonym
Jill sal_limit private synonym
  Work_city public synonym
  Plant_detail table owner
中国网管联盟www、bitsCN、com

    考虑一下下列SQL语句能否在这两个用户之间共享。

54com.cn

 

 SQL 能否共享 原因
select max(sal_cap) from sal_limit; 不能 每个用户都有一个private synonym - sal_limit , 它们是不同的对象
select count(*0 from work_city where sdesc like 'NEW%'; 两个用户访问相同的对象public synonym - work_city
select a.sdesc,b.location from work_city a , plant_detail b where a.city_id = b.city_id 不能 用户jack 通过private synonym访问plant_detail 而jill 是表的所有者,对象不同

网管网bitsCN.com

 

    C.两个SQL语句中必须使用相同的名字的绑定变量(bind variables) ,例如:

54ne.com

 

    第一组的两个SQL语句是相同的(可以共享),而第二组中的两个语句是不同的(即使在运行时,赋于不同的绑定变量相同的值) feedom.net

    a.

网管网bitsCN_com

 

    select pin , name from people where pin = :blk1.pin; feedom.net

    select pin , name from people where pin = :blk1.pin; 54ne.com

    b.

中国网管论坛bbs.bitsCN.com

 

    select pin , name from people where pin = :blk1.ot_ind; 网管网bitsCN.com

    select pin , name from people where pin = :blk1.ov_ind; 中国网管联盟www_bitscn_com

分享到:
评论

相关推荐

    数据库性能调优--原理与技术2.pdf

    《数据库性能调优——原理与技术2》这本书专注于Oracle数据库的性能优化,通过深入探讨其内部机制和技术细节,为读者提供了实用的优化策略和最佳实践。 **数据库性能调优的目的**主要包括: - 提高查询响应速度,...

    oracle性能优化-比较全面

    Oracle性能优化是一个涵盖广泛且至关重要的主题,对于数据库的高效运行和企业级应用的性能提升起着决定性作用。本文将深入探讨Oracle性能优化的两个关键方面:SGA(System Global Area)的Shared Pool优化和Buffer ...

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    《Oracle性能优化绝版好书:高级OWI与ORACLE性能调整》这本书深入探讨了Oracle数据库性能优化的关键技术和策略,特别关注了Oracle Wait Interface (OWI)和性能调整的实践应用。OWI是Oracle数据库中用于监控和诊断...

    Oracle性能优化求生指南

    《Oracle性能优化求生指南》不仅涵盖了Oracle数据库性能优化的基本理论知识,还包含了大量实用技巧和真实世界中的案例研究。无论你是刚接触Oracle的新手还是经验丰富的专业人士,都能从中获益良多。通过学习本书提供...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    了解和利用这些工具,可以帮助数据库管理员更加高效地进行SQL性能调优。 最后,还应当注意Oracle的资源管理机制。Oracle提供了多种资源管理工具,比如资源管理器(Resource Manager)和数据库控制(Database ...

    SQL开发指南 第16章 SQL Tuning优化调优技巧--felix笔记.pdf

    本章节主要围绕SQL性能优化这一主题进行展开,详细介绍了多种提升SQL查询效率的方法。在数据库应用中,SQL查询的性能直接影响到系统的响应速度及资源利用率,因此掌握有效的SQL调优技巧对于提高整体系统性能至关重要...

    Oracle 性能调优向导

    "Oracle性能调优向导"这本书旨在为读者提供全面而实用的Oracle性能优化策略和技巧。 一、Oracle性能优化基础 Oracle性能优化的基本原则包括:最小化磁盘I/O、合理分配系统资源、优化SQL查询和索引策略。这需要我们...

    oracle官方mysql性能调优优化文档

    ### Oracle官方MySQL性能调优优化文档 #### 一、引言 在当今数据密集型的应用环境中,数据库性能的优化显得尤为重要。Oracle作为全球领先的企业级软件供应商,为MySQL提供了详尽的性能调优指南。本篇文章将根据提供...

    基本成本的Oracle优化法则--书里脚本.rar

    《基本成本的Oracle优化法则》是一本专注于Oracle数据库性能调优的专业书籍,它提供了一系列的脚本工具,帮助读者深入理解和应用Oracle的性能优化技术。Oracle数据库是全球广泛使用的数据库管理系统,尤其在企业级...

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

    4. **SQL优化技巧** - **使用EXPLAIN PLAN分析执行计划**:理解执行计划的各个部分,如访问方法、连接类型、排序操作等。 - **使用绑定变量**:避免全表扫描和提高查询效率。 - **避免不必要的排序和临时表**:...

    经典书籍:Oracle性能优化技术内幕

    《Oracle性能优化技术内幕》是一本深入探讨Oracle数据库性能调优的专业书籍,旨在帮助数据库管理员、开发人员以及系统架构师理解和解决Oracle数据库在运行过程中可能出现的性能问题。这本书全面覆盖了Oracle性能优化...

    Oracle 1z0-060

    该考试覆盖了从早期版本(如11g)到12c的所有关键迁移步骤和技术要点,包括对新特性的理解和应用、数据迁移策略、性能调优技巧以及故障排除方法等。 #### 考试目标与内容 1. **理解Oracle 12c的新特性**:考生需要...

    oracle调优工具.rar

    Oracle数据库调优是确保系统高效运行的关键步骤,它涉及到数据库性能优化、SQL查询优化、内存管理、I/O优化等多个方面。本压缩包“oracle调优工具.rar”提供了一系列的资源,帮助用户理解和实践Oracle数据库调优。 ...

    oracle性能优化内幕

    ### Oracle性能优化内幕 在IT领域,特别是对于那些依赖于Oracle数据库进行数据管理和处理的企业而言,性能优化是一项至关重要的工作。本文将深入探讨Oracle数据库性能优化的关键知识点,并结合实际应用场景,帮助...

    compat-oracle-rhel4-1.0-5.i386

    9. **性能调优**:根据实际的硬件配置和应用需求,进行性能调优,包括内存分配、I/O子系统优化、SQL查询优化等。 10. **备份与维护**:定期进行数据库备份,确保数据的安全。同时,需要监控数据库的运行状态,及时...

    oracle 性能调整 sql性能优化大全

    Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...

    oracle_11g_性能优化_调优

    ### Oracle 11g 性能优化与调优详解 #### 一、Oracle 11g 性能调优器介绍 在Oracle 11g中,性能调优是一项非常重要的工作,它可以帮助数据库管理员(DBA)有效地提高系统的运行效率。性能调优器是一个综合性的工具集...

    oracle培训sql性能优化ppt

    本PPT深入探讨了Oracle SQL优化的各种方面,旨在帮助读者理解SQL执行过程,掌握优化技巧,提升系统性能。 **1. 优化基础知识** - **性能管理**:早期介入,设定明确目标,持续监控,团队协作,及时应对意外和变化,...

    Oracle性能优化技术内幕

    《Oracle性能优化技术内幕》是一本深入探讨Oracle数据库性能调优的专业书籍,旨在帮助读者掌握在实际工作中如何提升Oracle数据库的运行效率。Oracle数据库作为全球广泛使用的大型企业级数据库管理系统,其性能优化...

Global site tag (gtag.js) - Google Analytics