- 浏览: 115070 次
- 性别:
- 来自: 北京
文章分类
最新评论
QueryOptimizer一共经历了两个历史阶段:RBO和CBO。RBO时代,Oracle执行计划是通过一系列固化的规则进行执行计划生成。而CBO时代,则是利用系统统计量进行各种执行路径试算,获取相对相对成本最低的执行计划.
OPTIMIZER_MODE参数
控制执行计划的优化方法
ALL_ROWS不管是不是有统计信息,全部采用基于成本的优化方法,返回最大数的量数据
FIRST_ROWS_
n
不管是不是有统计信息,全部采用基于成本的优化方法并以最快的速度,返回前
N
行记录
FIRST_ROWS
使用成本和试探法相结合的方法,查找一种可以最快返回前面少数行的方法
第一个是返回所有行的最小代价,第二个是返回前N行的最小代价,最后一个是返回前面的少量行的最好计划
修改全部session的optimizer_mode
alter system setoptimizer_mode=all_rows;
修改当前session的optimizer_mode
alter session setoptimizer_mode=all_rows;
OPTMIZER_DYNAMIC_SAMPLING参数
表示oracle查询优化时动态采样的级别,0-10
0不会采样,10级别最高,如果没有统计信息,采样将会很慢。
OPTIMIZER_FEATURES_ENABLE参数启用优化器采用版本行为
如果想采用旧版本的特性,需要设置OPTIMIZER_FEATURES_ENABLE为旧本本版本号.
如果升级数据库版本等,OPTIMIZER_FEATURES_ENABLE的优化器版本也将跟着改变.
Showparameter OPTIMIZER_FEATURES_ENABLE;
SQL>alter system set OPTIMIZER_FEATURES_ENABLE="11.1.0.6";
如下的参数控制查询优化的行为
CURSOR_SHARING转换绑定变量的值,执行计划基于现存绑定变量。
DB_FILE_MULTIBLOCK_READ_COUNT查询是IO读操作块的数量,如果全表扫描将该值增大,默认为8.
SQL>show parameter DB_FILE_MULTIBLOCK_READ_COUNT;
SQL>alter system set DB_FILE_MULTIBLOCK_READ_COUNT=128;
OPTIMIZER_INDEX_CACHING这个参数影响嵌套循环连接索引在buffercache中的比例,值在0-100之间,100时优化器认为100%可以在内存中找到索引。
SQL>show parameter OPTIMIZER_INDEX_CACHING;
SQL>alter system set OPTIMIZER_INDEX_CACHING=0;
OPTIMIZER_INDEX_COST_ADJ这个参数优化器用来计算cost的,这个参数可以用来调整使用索引的代价,默认值是100,范围是1-10000,如果设为10,表示通过索引路径访问是正常通过索引路径访问的1/10.
SQL>show parameter OPTIMIZER_INDEX_COST_ADJ;
altersystem set OPTIMIZER_INDEX_COST_ADJ=100;
OPTIMIZER_MODE设置实例优化器的模式,ALL_ROWS,FIRST_ROWS_
n
,
FIRST_ROWS
SQL>show parameter optimizer_mode;
SQL>alter system set optimizer_mode=all_rows;
PGA_AGGREGATE_TARGET自动控制sort与join操作的内存大小。
STAR_TRANSFORMATION_ENABLED位图索引查询时设置为true
理解查询优化
查询优化根据访问路径与提示产生隐式的执行计划。
查询优化估计根据每个执行计划的成本,包括数据分布,表数据的存储,索引,语句访问的
分区,计算访问路径,joinorder,io,cpu及内存成本。
最后比较执行计划选择最低成本的执行计划。
发表评论
-
Google公开Megastore论文——解决NoSQL、SQL融合难题
2011-03-02 14:44 659实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 704内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 635当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 677本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 642在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 654Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 828以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 744connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 966简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 856asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 866OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 908SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 728共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 722当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 834oracle主要影响性能的内存: Shared ... -
oracle内存调整相关
2011-10-14 15:52 885db_cache_size与sga_target关系 db_ ... -
oracle索引分类
2011-10-17 13:31 845B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 10931.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 753本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 790创建立表空间 CREATE TABLESPACE ...
相关推荐
Oracle查询优化是数据库管理中的重要环节,它直接关系到数据库的性能和响应速度。针对Oracle数据库的查询优化,本文件提供了丰富的技巧和案例分析,以帮助读者深入理解优化原理,并能在实际工作中学以致用。 首先,...
这本书“Oracle查询优化PDF”很可能是对Oracle数据库查询优化技术的深入探讨,涵盖了一系列相关主题,旨在帮助数据库管理员和开发人员提升系统的效率。 首先,Oracle查询优化的基础是SQL(结构化查询语言)。优化...
Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...
Oracle查询优化是数据库管理中的关键技能,尤其是在处理大型数据集时,有效的查询优化能显著提升系统性能,降低资源消耗。本实践主要关注如何利用Oracle数据库的特性与工具来改进SQL查询的执行效率。 首先,了解...
Oracle参数优化是提升Oracle数据库性能的关键环节,涉及到数据库初始化参数的合理配置。在Oracle数据库运行过程中,各个参数对系统性能的影响显著,尤其是对数据库的I/O效率、内存管理和SQL解析等方面。 首先,`DB_...
Oracle查询优化改写技巧与案例涉及到如何通过改进SQL语句、利用索引、调整表设计和数据库参数来提升查询速度,降低资源消耗。以下将详细介绍一些核心的Oracle查询优化策略和实践案例。 1. **SQL语句优化** - **...
### Oracle查询优化4大方面的主要途径 在Oracle数据库管理中,查询优化是提高数据库性能的关键环节之一。本文将从四个方面详细介绍Oracle查询优化的主要途径:缓存管理、内存管理、索引管理和连接策略优化。 #### ...
综上所述,Oracle查询优化是一个涉及多个层面的系统工程,包括SQL编写、索引设计、执行计划分析、数据库参数调整以及硬件升级等。只有全面了解并熟练运用这些技巧,才能真正实现Oracle数据库的高效运行。通过不断...
Oracle SQL 查询优化是提高数据库性能的关键技术之一,尤其在处理大量数据时,优化查询能够显著提升系统的响应速度和资源利用效率。以下是一些关键的优化策略: 1. **选择最有效的表名顺序**:在FROM子句中,Oracle...
Oracle 多表查询优化需要考虑多个方面,包括选择合适的表名顺序、使用 Cache Buffer、语句共享、优化查询路径、避免多表连接查询、优化数据统计、选择合适的索引、优化数据库结构、使用 Materialized View、优化...
- **索引统计信息更新**:定期更新索引统计信息可以帮助Oracle优化器更准确地评估查询成本。 ##### 2. 调整SQL语句结构 - **避免SELECT ***:明确指定需要查询的字段而不是使用`SELECT *`,以减少不必要的数据传输...
ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析
Oracle数据库查询优化是数据库管理中的关键环节,它旨在提高数据检索速度,降低系统资源消耗,提升整体系统性能。本文将深入探讨Oracle数据库查询优化的各种方法和技术。 首先,我们从SQL语句的编写入手。良好的SQL...
Oracle查询优化是数据库管理中的重要环节,它涉及到提高数据库性能,减少资源消耗,提升系统响应速度等关键问题。Oracle数据库作为世界上最广泛使用的数据库系统之一,其查询优化技术具有丰富的理论和实践价值。以下...
"Oracle数据库优化之数据库磁盘IO" Oracle数据库优化之数据库磁盘IO是指数据库管理员和开发者对Oracle数据库进行优化,以提高数据库的性能和稳定性。数据库磁盘IO是影响数据库性能的重要因素之一,因此优化数据库...
除了上述两点,Oracle性能优化还包括索引的建立与管理,分区策略的运用,回滚段的优化,以及查询执行计划的控制等。索引能加速数据检索,但过度的索引会增加写操作的开销,需权衡利弊。分区策略可将大表分解,提高...
以下是一些关键的优化参数设置及其作用: 1. **_allow_level_without_connect_by**: 这个参数允许在不使用CONNECT BY的情况下执行层次查询,可以提高某些特定查询的性能。 2. **memory_max_target** 和 **memory_...
### Oracle 实现带参数视图 #### 背景与概念 在数据库设计与管理过程中,视图(View)作为一种虚拟...在实际应用中,开发人员可以根据业务需求进一步扩展和优化包中的函数与存储过程,以支持更复杂的参数化查询场景。
### Oracle并行查询优化 #### 一、引言 在Oracle数据库系统中,并行查询(Parallel Query, PQ)是一项强大的特性,它通过将查询任务分解为多个子任务并行执行来提升性能。然而,并行查询并非总是能带来性能提升,...
基数反馈可能因查询条件不一致或会话级别优化器参数设置不同而出现问题。例如,optimizer_mode和optimizer_index_cost_adj参数的设置可能影响优化器对索引成本的估算。如果在同一会话中,即使使用相同的查询条件,...