oracle 性能之优化器

 优化器模式

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和共享池
 

你可能感兴趣的:(oracle,优化,职场,where,休闲)