您的位置:首页 > 数据库 > Oracle

ORACLE 执行计划2

2012-11-16 10:07 141 查看
SQL>set timing on --显示Elapsed执行总时间。区别于set time on

方式一:

SQL>set autotrace on/off --显示结果集、执行计划和统计信息(执行SQL)

SQL>set autotrace traceonly --显示执行计划和统计信息, 不显示结果集(执行SQL)

SQL>set autotrace traceonly explain --只显示执行计划(不执行SQL)

SQL>set autotrace traceonly statistics --只显示统计信息(不执行SQL)

SQL>SELECT * FRM T_BD_ACCOUNTVIEW;

方式二:

SQL>explan plan for select * from t_bd_accountview;

SQL>SELECT plan_table_output FROM table(DBMS_XPLAN.DISPLAY('t_bd_accountview'));

SQL>SELECT * FROM table(dbms_xplan.display);

方式三:

SQL>alter session set SQL_TRACE=true;

SQL>SELECT sid, serial#, username from v$session where username = 'xxxx'

SQL>exec dbms_system.set_SQL_TRACE_in_session(sid, serial#,true/false)

--跟踪其它用户

SQL>alter session set events '10046 trace name context forever, level 8') //or '10046 trace name context off'

SQL>exec dbms_system.set_ev(sid, serial#,10046, 0-8(level), username);

执行计划中的字段解释:

ID:一个序号,但不是执行的先后顺序。执行的先后顺序根据缩进来判断

Operation:当前操作的内容

Rows:当前操作的cardinality, Oracle根据CBO估算当前操作返回的结果集

Cost(CPU):Oracle计算出来的一个数值(代价), 用于说明SQL执行的代价

Time: oracle估计当前操作的时间

谓词说明:

Access:影响数据的访问路径(表还是索引)

Filter:只起过滤数据的作用。

explain plan各列的含义:

ID_PLUS_EXP

PARENT_ID_PLUS_EXP

PLAN_PLUS_EXP

OBJECT_NODE_PLUS_EXP

Statistics各列含义:

db block gets --从buffer cache中读取的block数量

constient gets --从buffer cache中读取的undo数据的block数量

---because of查询过程中,由于其它回话对数据块进行了操作,而对所要查询的块有了修改。读取其以保证一致性。

physical reads --从磁盘读取的block的数量

redo size --DML生成的redo的大小 (重做数——执行SQL的过程中,产生的重做日志的大小)

sorts(memory) --在内存执行的排序量

sorts(dis) --在磁盘执行的排序量

逻辑读:db block gets + constient gets

物理读:physical reads

缓冲区使用的命中率 = 1 - 物理读 / (缓冲块读+缓冲undo读)

SQL>SELECT name, value FROM v$sysstat WHERE name IN('db block gets', 'consistent gets', 'physical reads');

如果buffer cache的命中率在90%以上,否则需要增加数据缓冲区的大小

动态分析

如果执行计划中出现提示:

--dynamic sampling used for the statement

表示用户使用了动态采样技术CBO模式下。===>从而推断这个表可能没有做过分析,可有导致两种现象:

1.该表没有做过分析,CBO采用动态采样分析数据,也可以得出正确的执行计划

2.分析信息过旧,CBO不会动态采样,采用旧的信息,从而导致错误的执行计划。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: