Home  >  Article  >  Database  >  Oracle OPTIMIZER_MODE参数

Oracle OPTIMIZER_MODE参数

WBOY
WBOYOriginal
2016-06-07 17:07:211031browse

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

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     stringALL_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;

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn