Oracle是否有办法显示Sybase的“showplan”等查询执行计划?

时间:2011-07-21 15:51:07

标签: oracle query-optimization

我是Sybase DBA /性能优化器,并被要求查看Oracle上一些SQL查询的性能,看看问题是什么以及它为什么慢。有没有类似于Sybase的showplan?我需要获取物理i / o和逻辑i / o的数量,表扫描和索引查询或存储过程使用。

我曾经使用过Embarcadero,我不再拥有它了。

2 个答案:

答案 0 :(得分:4)

说明计划和/或AutoTrace是Oracle等效项,它将为您提供Oracle在执行查询时将使用的可能执行计划。

在SQLPLUS中你可以这样做..

SQL> set autotrace traceonly;

SQL> select * from scott.emp;

14 rows selected.

Execution Plan
----------------------------------------------------------
Plan hash value: 3956160932

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |    14 |   518 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| EMP  |    14 |   518 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          8  consistent gets
          0  physical reads
          0  redo size
       1415  bytes sent via SQL*Net to client
        381  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed

根据详细程度和具体情况,以下是各种其他选项。

http://www.oracle-base.com/articles/10g/SQLTrace10046TrcsessAndTkprof10g.php

答案 1 :(得分:1)

我不确定是否所有内容都可用,但Oracle SQL Developer允许您查询并点击解释计划以查看执行计划。这包括它将要执行的操作以及它正在使用的任何索引。

这是一款免费工具,请试一试。 :)