文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>oracle 执行计划

oracle 执行计划

时间:2010-09-27  来源:ank

运行utlxplan, run create public synonym plan_table for plan_table run grant all on plan_table to pubic

查看执行计划的三种方法

 1设置autotrace

序号

命令

解释

1

SET AUTOTRACE OFF

此为默认值,即关闭Autotrace 

2

SET AUTOTRACE ON EXPLAIN

只显示执行计划

3

SET AUTOTRACE ON STATISTICS

 只显示执行的统计信息

4

SET AUTOTRACE ON

 包含2,3两项内容

5

SET AUTOTRACE TRACEONLY

 与ON相似,但不显示语句的执行结果

 



2使用sql

示例:

SQL> EXPLAIN PLAN FOR SELECT * FROM DAVE;

已解释。

SQL> SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

PLAN_TABLE_OUTPUT

3使用toad,pl/sql,develop工具


查看执行计划

cardinality(基数)/rows

表示CBO从一个行源(row source)返回的记录数,

9icardinality 缩写成card

10g中,card值被rows替换


Cardinality的值对于CBO做出正确的执行计划来说至关重要

SQL> SET AUTOTRACE TRACEONLY;  -- 只显示执行计划,不显示结果集

SQL> select * from scott.emp a,scott.emp b where a.empno=b.mgr;

已选择13行。

 执行计划

----------------------------------------------------------

Plan hash value: 992080948
---------------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 13 | 988 | 6 (17)| 00:00:01 |
| 1 | MERGE JOIN | | 13 | 988 | 6 (17)| 00:00:01 |
| 2 | TABLE ACCESS BY INDEX ROWID| EMP | 14 | 532 | 2 (0)| 00:00:01 |
| 3 | INDEX FULL SCAN | PK_EMP | 14 | | 1 (0)| 00:00:01 |
|* 4 | SORT JOIN | | 13 | 494 | 4 (25)| 00:00:01 |
|* 5 | TABLE ACCESS FULL | EMP | 13 | 494 | 3 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

 
Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("A"."EMPNO"="B"."MGR")
       filter("A"."EMPNO"="B"."MGR")
   5 - filter("B"."MGR" IS NOT NULL)
 
统计信息
----------------------------------------------------------

          0 recursive calls
          0 db block gets
         11 consistent gets
          0 physical reads
          0 redo size
       2091 bytes sent via SQL*Net to client
        416 bytes received via SQL*Net from client
          2 SQL*Net roundtrips to/from client
          1 sorts (memory)
          0 sorts (disk)
         13 rows processed


执行计划中的字段解释   ID: 一个序号,但不是执行的先后顺序。执行的先后根据缩进来判断 (一般按缩进长度来判断,缩进最大的最先执行,如果 有2行缩进一样,那么就先执行上面的。)        Operation: 当前操作的内容。        Rows: 当前操作的Cardinality,Oracle估计当前操作的返回结果集。        Cost(CPU):Oracle 计算出来的一个数值(代价),用于说明SQL执行的 代价。        Time:Oracle 估计当前操作的时间。
谓词说明 access 表示这个谓词条件的值将会影响数据的访问路劲(表还是索引)。 Filter:表示谓词条件的值不会影响数据的访问路劲,只起过滤的作用。

统计信息说明 recursive calls db block gets : 从buffer cache中读取的block的数量     consistent gets: 从buffer cache中读取的undo数据的block的数量     physical reads: 从磁盘读取的block的数量     redo size: DML生成的redo的大小     sorts (memory) :在内存执行的排序量     sorts (disk) :在磁盘上执行的排序量    
bytes sent via SQL*Net to client bytes received via SQL*Net from client SQL*Net roundtrips to/from client rows processed

排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载