Oracle数据库的优化方式

一、查询当前数据库的优化方式
show parameter optimizer_mode;

默认条件下,CBO将SQL语句的吞吐量作为优化目标,而在一些条件下,需要将相应时间作为优化目标,此时返回一行或者前几行数据
1) ALL_ROWS 默认优化方式,目标是实现查询的最大吞吐量
2)FIRST_ROWS_n 使用CBO的成本优化输出查询前N行数据,目标是满足快速响应的查询需求
3)FIRST_ROWS 是FIRST_ROWS_n的old版本,使用CBO的成本优化输出查询前几行数据,目标是满足最小响应时间需求

二、设置优化方式
1)在实例级别设置优化方式
alter system set optimizer_mode=FIRST_ROWS_10 scope=both
也可以在初始化参数文件中设置优化方式

2)在会话级别设置CBO优化方式
alter session set optimizer_mode=ALL_ROWS

3)在会话级别设置优化方式必须使用hint提示
select /*+FIRST_ROWS_10*/ name from emp;


默认情况下,Oracle自动运行gather_status_job来为表获得统计数据,并且监控数据库对象的所有DML操作

查询运行状态
dba_scheduler_jobs;
查询表的统计分析情况
dba_tables;

猜你喜欢

转载自gaojingsong.iteye.com/blog/2288312
今日推荐