`

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参数优化

    详细介绍了,Oracle参数优化,各种配置方法,是Oracle得到最优化的提高

    ORACLE数据库参数优化与分析

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

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

    Oracle 12c r2优化参数设置

    Oracle 19c参数设置最佳实践 .xlsx

    oracle 19c数据库参数优化最佳实践

    oracle性能优化技巧

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

    Oracle数据库最优化参数缩短反应时间

    使用FIRST_ROWS_n最优化,Oracle查询能够使用最少的反应时间来给出最初的n行结果。更快速的给出最初n行的结果能够提高用户对应用软件的满意程度的原因是由于用户能够更为快速的得到最初的那些数据。 当使用FIRST_...

    oracle 数据库优化技术资料

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

    参数性能设置优化【ORACLE DB 】.zip

    参数性能设置优化【ORACLE DB 】

    oracle数据库的优化

    oracle数据库的优化 数据库的优化 2 概述 2 监控数据库的性能: 2 优化数据库磁盘I/O 2 建立和优化数据库文件的方针: 6 监控磁盘I/O的方法: 7 优化回滚段 7 检测回滚段争用: 7 ...优化索引存储参数。

    Oracle执行计划参数解释

    Oracle执行计划参数解释,Oracle SQL优化的基础是看懂Oracle的执行计划,本文当系统整理了Oracle执行计划里面的各种参数。

    Oracle系统参数优化

    Oracle系统参数优化 ,对数据库的基本构架进行详细描述,对系统的性能调优做了很多介绍,仅供参考。

    ORACLE19c数据库性能优化说明.docx

    orcale的sql调优

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

    Oracle数据库优化之数据库磁盘IO! 值得下载看看!资源免费,大家分享!!

    oracle语句优化53个规则详解

    选用适合的ORACLE优化器 ORACLE的优化器共有3种: a.RULE(基于规则) b.COST(基于成本) c.CHOOSE(选择性) 设置缺省的优化器,可以通过对init.ora 文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST, CHOOSE,...

    Oracle性能优化

    Oracle 性能优化,sql 索引管理分析

    oracle相关参数的查询语句

    文档是自己总结的数据库查询,优化相关的语句,在对数据库的操作上可以参考下,觉对有用。

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    《Oracle优化日记:一个金牌DBA的故事》是一本介绍Oracle数据库优化方法的书,以一个实际的大型优化项目为原型,用日记的形式记录了一个优化小组的DBA 如何从纷繁的头绪中找到突破口,进而完成了一个看似不可能完成...

    Linux内核参数调整及ORACLE调优参数

    Linux内核参数调整及ORACLE调优参数

    Oracle彻底优化.doc

    数据库系统性能的优化,除了在设计阶段对其逻辑存储结构和物理存储... 除了用Oracle优化器来优化数据库的性能外,DBA还可通过优化Oracle的参数设置等手段来优化数据库的性能,对参数的细微优化便能影响系统整体性能。

    如何选择Oracle优化器使你事半功倍

    Oracle的优化器共有3种:RULE(基于规则)、COST(基于成本)、CHOOSE(选择性)。设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS 。你当然也在SQL句...

Global site tag (gtag.js) - Google Analytics