`

oracle OPTIMIZER_MODE参数

 
阅读更多

Oracle在执行SQL语句时,有两种优化方法:即基于规则的RBO和基于代价的CBO。在SQL执教的时候,到底采用何种优化方法,就由Oracle参数 optimizer_mode 来决定。

Rule Based Optimizer(RBO)基于规则
Cost Based Optimizer(CBO)基于成本,或者讲统计信息

SQL> show parameter optimizer_mode;


NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode string ALL_ROWS

oracle10g开始默认是all_rows

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

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

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

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

修改全局

alter system set optimizer_mode=all_rows;

修改当前session

alter session set optimizer_mode=all_rows;

分享到:
评论

相关推荐

    oracle9i优化器介绍

    优化器目标不仅可以通过初始化参数OPTIMIZER_MODE在实例级别进行设置,还可以通过执行ALTER SESSION SET OPTIMIZER_MODE语句在会话级别进行调整。此外,通过在SQL语句中使用Hints,可以针对特定查询动态地改变优化...

    ORACLE9i_优化设计与系统调整(doc)

    2. 全局化参数:如optimizer_mode、cursor_sharing等,根据应用特点调整以优化查询行为。 3.后台进程调整:如DBWn(数据写入进程)、ARCn(归档日志进程)、LCKn(锁定进程)等,根据系统负载调整数量和优先级。 ...

    oracle笔试和面试题

    Instant 级别:修改初始化参数,例如在 init.ora 文件中设定 OPTIMIZER_MODE=RULE、OPTIMIZER_MODE=CHOOSE、OPTIMIZER_MODE=FIRST_ROWS、OPTIMIZER_MODE=ALL_ROWS。 * B. Session 级别:当前会话输入 ALTER SESSION...

    oracle-优化器详解.docx

    影响优化器优化目标的因素主要有三个:OPTIMIZER_MODE 初始化参数、数据字典中的 CBO 统计数据、用来改变 CBO 优化目标的 Hints。 OPTIMIZER_MODE 初始化参数 ------------------------- OPTIMIZER_MODE 初始化...

    Oracle经典面试总结-去重-附答案.pdf

    _optimizer_mode_ Optimizer_mode 是 Oracle 数据库中一个重要的参数,它决定了数据库如何选择执行计划。在optimizer_mode=choose 时,如果表有统计信息(分区表外),优化器将选择 CBO,否则选 RBO。CBO 尝试找到...

    ORACLE9i_优化设计与系统调整

    §14.4.1 OPTIMIZER_MODE初始参数 173 §14.4.2 数据字典中的统计数据 173 §14.4.3 ALTER SESSION语句的OPTIMIZER_GOAL参数 174 §14.4.4 关于提示的改变目标 174 §14.5 基于代价优化器(CBO) 174 §14.5.1 CBO...

    基于成本的oracle优化法则

    这是因为在Oracle 10g中,参数`optimizer_dynamic_sampling`的默认值为2,意味着针对没有统计信息的任何表都采用动态采样,而在Oracle 9i中该参数的默认值为1。 #### 成本的定义 **CBO的核心概念** 网络上关于CBO...

    oracle_优化器详解

    Oracle提供了`OPTIMIZER_MODE`初始化参数来控制优化器的行为。这个参数的不同设置会影响优化器的选择: - **CHOOSE**: 缺省值,优化器会根据是否有可用的统计信息来选择使用基于成本的优化方法(CBO)或基于规则的...

    oracle性能优化之SQL语句优化

    `optimizer_mode`参数的`CHOOSE`和`RULE`选项在Oracle 10g中已被淘汰,取而代之的是`ALL_ROWS`、`FIRST_ROWS`、`FIRST_ROWS_N`等优化目标,这些目标分别针对整体查询性能、快速返回第一条记录和平衡首行与总行数的...

    ORACLE_SQL性能调整

    如果不想依赖CHOOSE,可以直接设置OPTIMIZER_MODE为RULE或COST,以强制使用特定的优化策略。 其次,访问表的方式也是影响性能的重要因素。全表扫描(Full Table Scan, FTS)虽然简单,但对大数据量的表来说效率低下...

    Oracle数据库的SQL语句的优化

    1. **修改初始化参数**:可以在`init<SID>.ora`文件中更改`OPTIMIZER_MODE`参数为`RULE`或`CHOOSE`,并重启数据库。 2. **更新统计信息**:定期运行`ANALYZE TABLE ... COMPUTE STATISTICS;`命令更新表的统计信息,...

    oracle_sql性能优化

    设置缺省的优化器,可以通过对 init.ora 文件中 OPTIMIZER_MODE 参数的各种声明,例如 RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS。为了使用基于成本的优化器(CBO),必须经常运行 analyze(分析)命令,以增加...

    Oracle9i优化器介绍

    - **OPTIMIZER_MODE初始化参数**: 这个参数控制着Oracle优化器的工作模式。根据不同的设置,它可以指导优化器使用基于成本的优化方法(CBO)或基于规则的优化方法(RBO)。具体来说,该参数有以下几种取值: - **CHOOSE...

    Oracle优化常用概念.pptx

    Oracle 优化器有两种模式:CBO(Cost-Based Optimizer)和 RBO(Rule-Based Optimizer)。CBO 是基于成本的优化器,需要使用统计信息,据此计算最佳的执行计划;而 RBO 是基于规则的优化器,根据 Oracle 设定的规则...

    DBA面试题 oracle

    在 optimizer_mode=choose 时,如果表有统计信息,优化器将选择 CBO,否则选择 RBO。 四、SQL 调整 SQL 调整是 DBA 的重要任务之一。了解 SQL 语句的执行情况、资源消耗情况和性能瓶颈所在,可以帮助 DBA 进行优化...

    Oracle_SQL-Optimization.rar_oracle_sql优化

    7. **查询优化器**:理解CBO(Cost-Based Optimizer)的工作原理,学习如何使用optimizer_mode和hints来影响优化器的选择。 8. **物化视图和重写**:对于经常执行的复杂查询,创建物化视图可以预先计算结果,提高...

    Oracle DB优化总结

    设定优化器模式可以通过ALTER SESSION语句完成,例如,设置为CBO模式:`ALTER SESSION SET OPTIMIZER_MODE=COST_BASED;` 二、Oracle 索引介绍 索引是提升查询效率的关键工具,分为多种类型,如B树索引、位图索引、...

Global site tag (gtag.js) - Google Analytics