`

oracle查询优化相关参数

 
阅读更多

QueryOptimizer一共经历了两个历史阶段:RBOCBORBO时代,Oracle执行计划是通过一系列固化的规则进行执行计划生成。而CBO时代,则是利用系统统计量进行各种执行路径试算,获取相对相对成本最低的执行计划.

OPTIMIZER_MODE参数

控制执行计划的优化方法

ALL_ROWS不管是不是有统计信息,全部采用基于成本的优化方法,返回最大数的量数据

FIRST_ROWS_n不管是不是有统计信息,全部采用基于成本的优化方法并以最快的速度,返回前N行记录

FIRST_ROWS使用成本和试探法相结合的方法,查找一种可以最快返回前面少数行的方法

第一个是返回所有行的最小代价,第二个是返回前N行的最小代价,最后一个是返回前面的少量行的最好计划

修改全部sessionoptimizer_mode

alter system setoptimizer_mode=all_rows;

修改当前sessionoptimizer_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自动控制sortjoin操作的内存大小。

STAR_TRANSFORMATION_ENABLED位图索引查询时设置为true

理解查询优化

查询优化根据访问路径与提示产生隐式的执行计划。

查询优化估计根据每个执行计划的成本,包括数据分布,表数据的存储,索引,语句访问的

分区,计算访问路径,joinorder,io,cpu及内存成本。

最后比较执行计划选择最低成本的执行计划。

 

分享到:
评论

相关推荐

    Oracle查询优化改写 技巧与案例.pdf

    Oracle查询优化是数据库管理中的重要环节,它直接关系到数据库的性能和响应速度。针对Oracle数据库的查询优化,本文件提供了丰富的技巧和案例分析,以帮助读者深入理解优化原理,并能在实际工作中学以致用。 首先,...

    oracle查询优化pdf

    这本书“Oracle查询优化PDF”很可能是对Oracle数据库查询优化技术的深入探讨,涵盖了一系列相关主题,旨在帮助数据库管理员和开发人员提升系统的效率。 首先,Oracle查询优化的基础是SQL(结构化查询语言)。优化...

    Oracle 多表查询优化

    Oracle 多表查询优化 Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量...

    Oracle 查询优化,个人练习

    Oracle查询优化是数据库管理中的关键技能,尤其是在处理大型数据集时,有效的查询优化能显著提升系统性能,降低资源消耗。本实践主要关注如何利用Oracle数据库的特性与工具来改进SQL查询的执行效率。 首先,了解...

    Oracle参数优化

    Oracle参数优化是提升Oracle数据库性能的关键环节,涉及到数据库初始化参数的合理配置。在Oracle数据库运行过程中,各个参数对系统性能的影响显著,尤其是对数据库的I/O效率、内存管理和SQL解析等方面。 首先,`DB_...

    Oracle查询优化改写 技巧与案例

    Oracle查询优化改写技巧与案例涉及到如何通过改进SQL语句、利用索引、调整表设计和数据库参数来提升查询速度,降低资源消耗。以下将详细介绍一些核心的Oracle查询优化策略和实践案例。 1. **SQL语句优化** - **...

    Oracle查询优化4大方面的主要途径

    ### Oracle查询优化4大方面的主要途径 在Oracle数据库管理中,查询优化是提高数据库性能的关键环节之一。本文将从四个方面详细介绍Oracle查询优化的主要途径:缓存管理、内存管理、索引管理和连接策略优化。 #### ...

    ORACLE查询优化

    综上所述,Oracle查询优化是一个涉及多个层面的系统工程,包括SQL编写、索引设计、执行计划分析、数据库参数调整以及硬件升级等。只有全面了解并熟练运用这些技巧,才能真正实现Oracle数据库的高效运行。通过不断...

    oracle查询优化

    Oracle SQL 查询优化是提高数据库性能的关键技术之一,尤其在处理大量数据时,优化查询能够显著提升系统的响应速度和资源利用效率。以下是一些关键的优化策略: 1. **选择最有效的表名顺序**:在FROM子句中,Oracle...

    ORACLE多表查询优化

    Oracle 多表查询优化需要考虑多个方面,包括选择合适的表名顺序、使用 Cache Buffer、语句共享、优化查询路径、避免多表连接查询、优化数据统计、选择合适的索引、优化数据库结构、使用 Materialized View、优化...

    ORACLE中SQL查询优化技术

    - **索引统计信息更新**:定期更新索引统计信息可以帮助Oracle优化器更准确地评估查询成本。 ##### 2. 调整SQL语句结构 - **避免SELECT ***:明确指定需要查询的字段而不是使用`SELECT *`,以减少不必要的数据传输...

    ORACLE数据库参数优化与分析

    ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析 ORACLE数据库参数优化与分析

    Oracle数据库查询优化的方法

    Oracle数据库查询优化是数据库管理中的关键环节,它旨在提高数据检索速度,降低系统资源消耗,提升整体系统性能。本文将深入探讨Oracle数据库查询优化的各种方法和技术。 首先,我们从SQL语句的编写入手。良好的SQL...

    Oracle查询优化.rar

    Oracle查询优化是数据库管理中的重要环节,它涉及到提高数据库性能,减少资源消耗,提升系统响应速度等关键问题。Oracle数据库作为世界上最广泛使用的数据库系统之一,其查询优化技术具有丰富的理论和实践价值。以下...

    Oracle数据库优化之数据库磁盘IO

    "Oracle数据库优化之数据库磁盘IO" Oracle数据库优化之数据库磁盘IO是指数据库管理员和开发者对Oracle数据库进行优化,以提高数据库的性能和稳定性。数据库磁盘IO是影响数据库性能的重要因素之一,因此优化数据库...

    oracle数据库性能优化.pdf

    除了上述两点,Oracle性能优化还包括索引的建立与管理,分区策略的运用,回滚段的优化,以及查询执行计划的控制等。索引能加速数据检索,但过度的索引会增加写操作的开销,需权衡利弊。分区策略可将大表分解,提高...

    Oracle 12c r2优化参数设置.docx

    以下是一些关键的优化参数设置及其作用: 1. **_allow_level_without_connect_by**: 这个参数允许在不使用CONNECT BY的情况下执行层次查询,可以提高某些特定查询的性能。 2. **memory_max_target** 和 **memory_...

    oracle实现带参数视图

    ### Oracle 实现带参数视图 #### 背景与概念 在数据库设计与管理过程中,视图(View)作为一种虚拟...在实际应用中,开发人员可以根据业务需求进一步扩展和优化包中的函数与存储过程,以支持更复杂的参数化查询场景。

    oracle并行查询优化

    ### Oracle并行查询优化 #### 一、引言 在Oracle数据库系统中,并行查询(Parallel Query, PQ)是一项强大的特性,它通过将查询任务分解为多个子任务并行执行来提升性能。然而,并行查询并非总是能带来性能提升,...

    Oracle性能优化与故障诊断案例分享

    基数反馈可能因查询条件不一致或会话级别优化器参数设置不同而出现问题。例如,optimizer_mode和optimizer_index_cost_adj参数的设置可能影响优化器对索引成本的估算。如果在同一会话中,即使使用相同的查询条件,...

Global site tag (gtag.js) - Google Analytics