oracle查看执行计划的三种方法

本文介绍了Oracle数据库中Autotrace功能的设置方法及其应用场景,包括如何通过不同命令展示执行计划与统计信息,并提供了使用SQL及Toad等工具的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



1.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相似,但不显示语句的执行结果

 

SQL>set autotrace on

SQL>select * from dave;

       ID NAME

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

        8 安庆

        1 dave

        2 bl

        1 bl

        2 dave

        3 dba

        4 sf-express

        5 dmm

 

已选择8行。

 

执行计划

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

Plan hash value: 3458767806

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

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

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

|  0 | SELECT STATEMENT  |      |    8 |    64 |     2  (0)| 00:00:01 |

|  1 |  TABLE ACCESS FULL| DAVE |     8 |    64 |     2   (0)| 00:00:01 |

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

 

统计信息

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

         0  recursive calls

         0  db block gets

         4  consistent gets

         0  physical reads

         0  redo size

       609  bytes sent via SQL*Net to client

       416  bytes received via SQL*Net from client

         2  SQL*Net roundtrips to/from client

         0  sorts (memory)

         0  sorts (disk)

         8  rows processed

 

SQL>

 

1.2使用SQL

SQL>EXPLAIN PLAN FOR sql语句;

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

 

示例:

SQL>EXPLAIN PLAN FOR SELECT * FROM DAVE;

已解释。

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

或者:

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT

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

Plan hash value: 3458767806

 

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

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

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

|  0 | SELECT STATEMENT  |      |    8 |    64 |     2  (0)| 00:00:01 |

|  1 |  TABLE ACCESS FULL| DAVE |     8 |    64 |     2   (0)| 00:00:01 |

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

已选择8行。

执行计划

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

Plan hash value: 2137789089

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

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

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

|  0 | SELECT STATEMENT                  |        |  8168 | 16336 |    29  (0)| 00:00:01 |

|  1 |  COLLECTION ITERATOR PICKLER FETCH| DISPLAY | 8168 | 16336 |    29   (0)| 00:00:01 |

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

 

统计信息

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

        25  recursive calls

        12  db block gets

       168  consistent gets

         0  physical reads

         0  redo size

       974  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)

         8  rows processed

SQL>

 

1.3使用Toad,PL/SQL Developer工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值