执行计划

oracle用来执行目标sql语句的这些步骤的组合就被成为执行计划

查看执行计划:

explain plan for 

dbms_xplan

sqlplus中autotrace的开关

10046事件

10053事件

AWR报告

一些个性化的脚本

在oracle数据库中判断执行计划是否准确,就是看目标sql是否真正被执行过,真正执行过的sql所对因的执行计划就是准的,泛指有可能不准。

查看执行计划的顺序:可以根据tom书中所述,画成一个执行计划树

oracle最常见的执行计划

与表相关的执行计划:全表扫描和ROWID扫描,table access full,table access by user rowid,table access by index rowid,table access by user rowid

与Btree相关的执行计划:index unique scan,index fast full scan,index skip scan,

与位图索引相关的执行计划;BITMAP INDEX SINGLE VALUE ,BITMAP CONVERSION TO ROWIDS,BITMAP INDEX RANGE SCAN,BITMAP INDEX FULL SCAN

   BITMAP INDEX FAST FULL SCAN,BITMAP OR,BITMAP AND ,BITMAP MINUS 

与表相关的执行计划:SORT IN,MERGE JOIN,NESTED LOOPS,HASH JOIN,HASH JOIN ANTI,MERGE JOIN ANTI,HASH JOIN ANTI ,HASH JOIN SEMI,MRGE JOIN SEMI

NESTED LOOPS SEMI

其他典型的执行计划:and-equal(INDEX MERGE),INDEX JOIN,VIEW, FILTER, SORT, SORT AGGREGATE,SORT UNIQUE,SORT JOIN,SORT GROUP BY ,SORT ORDER BY

BUFFER SORT, UNION ,UNION ALL, CONCAT, CONNECT BY 

oracle稳固执行计划

oracle 10g中sql profile是oralce9i中stored outline的进化。

优点:更容易生成,更改和控制 在对SQL语句的支持上做的更好

目的:锁定或者稳定执行计划

    在不能修改目标SQL的sql文本情况下使目标sql语句按指定的执行计划运行

SQL profile有两种类型:一种是Automatic类型,一种是manual类型

automatic类型的SQL profile并不能完全起到稳固目标SQL的执行计划的作用,虽然它可以确定可以用来调整执行计划

使用SPM来稳定执行计划

SQL PROFILE实际上只是一种亡羊补牢,被动的技术手段,应用在那些执行计划已经发生了不好的变更的SQL上。

SPM是一种主动的稳定执行计划手段,能够保证被验证过的执行计划才会被启用









你可能感兴趣的:(ORACLE,sql调优)