Oracle 配置查询优化器 - liwenshui322的专栏 - 博客频道 - CSDN.NET
查询优化器参数
1. optimizer_mode
查询优化器是为了找一个最高效的执行计划,这个参数用来定义什么是“高效”,比如是更快还是占用资源更少。在oracle10g中只支持两个参数值:
all_rows:提供全部数据
first_rows(n):n为大于0的自然数,表示尽快传输前面n条数据(比如分页查询的时候,我第一次只查询前面10条数据)
oracle10g默认为all_rows,可以再数据库级别,会话级别,或者执行SQL的时候修改该参数的值。
数据库级别:alter system set optimizer_mode=first_rows(10) scope=spfile;
会话级别:ALTER SESSION SET OPTIMIZER_MODE=first_rows(10);
SQL级别:SELECT /*+ first_rows(10) */ id,name from t1 order by id;
其实,默认all_rows是最好的方式,如果确实是只要查询小部分数据,可以在sql级别加上提示,看是否能提高性能。