优化器模式
1、RBO 基于规则的优化器
2、CBO 基于成本的优化器
10G以后,仅有first_rows_n、first_rows和all_rows选项,CBO。
alter session set optimizer_mode=ALL_ROWS;
识别差的SQL
使用频率最高的:
select sql_text,executions from (
select sql_text,executions,
rank() over
(order by executions desc) exec_rank
from v$sql)
where exec_rank <=5;
最多磁盘读:
select sql_text, disk_reads
from (select sql_text, disk_reads,
dense_rank() over (order by disk_reads desc) disk_reads_rank
from v$sql )
where disk_reads_rank <=5;
最多逻辑读:
select sql_text,buffer_gets
from ( select sql_text,buffer_gets,
dense_rank() over
(order by buffer_gets desc) buffer_gets_rank
from v$sql)
where buffer_gets_rank <=5;
SQL跟踪
statspack
调整顾问
ADDM自动数据库诊断监测器 DBA_ADVISOR_RECOMMENDATIONS视图,参数statistics_level=all or typical时。
优化器的统计量
analyze (已过时)
dbms_stats包
10G自动收集统计量
执行计划
合并
优化器提示 如:insert /*+ APPEND */ into emp select * from my_emp;
explain plan命令 dbms_xplan包
select 语句的性能
。所使用的优化程序
。查询的表所搜集的统计数据
。可用的性能结构,如索引
。物理问题,如磁盘IO
。数据库配置,如缓冲区cache和共享池