先说明一下,ORACLE有一个优化器(Optimizer),ORACLE的优化机理就是从Optimizer开始的。
明确两个概念:Optimizer 对ORACLE的优化方式有两种,一种是基于规则的,我们称为RBO(Rule-Based Optimization),一种是基于代价的CBO(Cost-Based Optimization),我们从字面就可基本理解这两个优化方式的含义,不错,RBO是根据ORACLE的内定规则实现的,比如我在“ORACLE性 能调优原则”中讲到的:索引,索引就是ORACLE的内定规则;而对于CBO,由于是基于代价的,也就是ORACLE机器的资源了,比如CPU和内存等, 这个时候有朋友就问了,既然有这两个方式,那ORACLE到底如何选择呢,其实,这个问题有一半需要我们自己回答,有一半由ORACLE回答。因为我们在 安装ORACLE时就已决定了ORACLE到底调用什么方式,这个就是init.ora中设定的OPTIMIZER_MODE参数,如果我们设为 OPTIMIZER_MODE=RULE,它就会按RBO方式进行,反之按CBO了。当然,我们在开发程序时也可认为的改变规则,如SQL:
SELECT /*RULE*/ * FROM TABLE_NAME ,这个就使ORACLE强制使用RBO规则了,当然,ORACLE也比较“聪明”,它会根据用户检索表和该表的索引的统计信息来选择优化方式了,这里就出 现了一个问题了,如果统计信息是陈旧的或者说是错误的,我们就必须用analyze人为的对表和索引进行重新统计了。http://yfqp.biz
ORACLE的优化模式有如下几种:RULE,CHOOSE,FIRSTROWS,ALLROWS四种,这四种模式必须和前面讲的优化方式放在一起解 释,CHOOSE就是选择的意思,如果有表和索引有统计信息,ORACLE就会CHOOSE CBO的优化方式了。对于FIRSTROWS,我给的解释是它和CHOOSE差不多,只是以最快的方式返回前面的记录行了;当然了ALLROWS就是以最 快的方式返回所有行。
以上讲了ORACLE的优化方式和优化模式,以及ORACLE如何选择,下面我再讲讲我们认为的改变ORACLE的优化了:
1、 修改ORACLE的init.ora的OPTIMIZER_MODE参数;
2、 在写SQL时人为指定优化方式,如:SELECT /*RULE*/ * FROM TABLE_NAME
3、 为不让ORACLE犯错误,我们有必要在日常维护中使用如下语句来优化表和索引:
spool d:\temp\analyze_table.sql
SELECT 'analyze table '||table_name||' compute statistics;' from user_tables;
spool off
spool d:\temp\analyze_index.sql
SELECT 'analyze index '||index_name||' compute statistics;' from user_indexes;
spool off
上面的SQL将对我们的表和索引产生批量的SQL,我们再执行这些SQL就行了。
OK,这些就是ORACLE的优化机理和我们人为的影响了,相信大家明白了,希望对大家有所帮助。
- 浏览: 316881 次
最新评论
-
lyjilu:
作者文笔不错,公司也不错
项目经理叫你改Bug,后来就发生了…… -
chrislee1982:
我只能说那个开发的,能力是有的,情商有点让人着急
项目经理叫你改Bug,后来就发生了…… -
movingboy:
这个做法不奇怪吧?生产急用就先临时解决,回头再想办法优化
项目经理叫你改Bug,后来就发生了…… -
tcrct:
已经在项目中大部份都用到了。
Java程序员一定知道的优秀第三方库 -
xianlc:
整理的很全
Java程序员一定知道的优秀第三方库
相关推荐
理解Oracle优化器的工作原理和案例对于数据库管理员来说至关重要,可以帮助他们调整和优化SQL执行,从而提高数据库的性能和效率。本篇分析将基于盖国强先生的著作《Oracle优化器案例与原理分析》进行深入探讨。 ...
以下是一些在实际应用中常用的Oracle优化原理和经验分享。 首先,SQL优化是Oracle数据库性能提升的核心。通过分析慢查询日志,我们可以找出执行效率低下的SQL语句,然后进行优化。这可能包括重构查询以减少全表扫描...
《基于成本的Oracle优化法则》是数据库专家Jonathan Lewis的一部经典著作,该书深入探讨了Oracle数据库的性能优化策略,特别是在成本基础优化方面。Oracle数据库是全球广泛使用的大型企业级数据库系统,其性能优化...
以下将从多个角度深入探讨Oracle数据库性能优化及内部原理解析的相关知识点。 首先,数据库性能优化的目的是为了确保数据库能够快速、高效地响应用户的查询请求。这包括减少查询的响应时间、提高事务的处理能力、...
"基于成本的Oracle优化法则"是一个重要的概念,它涉及到Oracle数据库查询优化器的工作原理。在这个主题中,我们将深入探讨这一法则,理解其背后的机制,并学习如何利用这些知识来提升数据库性能。 1. **基于成本的...
Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...
Oracle GoldenGate原理主要基于捕获源数据库的事务日志,然后将这些日志转换成OGG能理解的格式,并通过网络传输到目标数据库。在目标端,OGG再将这些事务应用到目标数据库,以实现数据的同步。OGG12.3对这一同步原理...
Oracle中SQL语句优化原理分析
"Oracle优化教程"旨在帮助各种水平的用户,无论是初学者还是经验丰富的专业人士,都能深入理解并掌握Oracle数据库的优化技巧,从而提升系统效率,减少资源消耗,提高应用程序的响应速度。 首先,我们从"oracle9i...
首先,我们来看一下Oracle优化器的工作原理。Oracle使用一种称为Cost-Based Optimizer(CBO)的方法来决定执行计划。CBO评估所有可能的执行路径,包括索引扫描、全表扫描、连接方法等,然后根据预计的代价(如I/O...
理解Oracle优化器的工作原理对于高效管理和优化数据库性能至关重要。从RBO到CBO的演进体现了Oracle在优化技术上的持续进步。尽管RBO在某些老版本的Oracle中仍然可见,但CBO以其强大的统计分析能力和灵活的执行计划...
下面将详细阐述Oracle RAC的基本原理、架构以及其关键组件。 ### Oracle RAC原理 Oracle RAC的核心理念是数据共享,而不是数据复制。在传统的单实例数据库环境中,一个数据库实例独占所有的数据库资源。而在RAC...
### 深入解析和定制Oracle优化工具 在IT领域,特别是数据库管理方面,Oracle作为全球领先的数据库管理系统之一,其优化工具对于确保系统的高效稳定运行至关重要。本文将围绕标题“深入解析和定制Oracle优化工具”...
资源名称:Oracle数据库性能优化 PDF内容简介:本书面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整...
本文档集包含了丰富的知识,帮助读者深入理解Oracle数据库的内部工作原理,掌握优化技巧,以实现更高效的数据处理。 1. **SQL优化**: SQL查询是Oracle数据库操作的核心,优化SQL语句可以显著提高数据库性能。这...
《Oracle优化日记:一个金牌DBA的故事》这本书深入探讨了Oracle数据库的性能优化技术,是DBA们不可或缺的参考资料。作者通过自身丰富的实战经验,分享了一系列解决实际问题的方法和策略,帮助读者理解Oracle数据库的...
总的来说,Oracle的Freelist和HWM是数据库存储管理的关键组成部分,理解它们的工作原理并据此进行优化,可以显著提升系统的性能和资源利用率。DBA需要根据具体的应用场景和工作负载,灵活运用各种工具和策略来确保...
在这个“Oracle9i原理及应用”的课程中,我们可以通过十章的内容深入理解Oracle9i的核心概念和技术。 首先,第一章可能介绍Oracle9i的基本架构,包括数据库实例、进程结构、内存结构(如SGA和PGA)以及数据存储机制...