Oracle是否有显示Sybase“showplan”之类的查询执行计划的方法?

Oracle是否有显示Sybase“showplan”之类的查询执行计划的方法?,oracle,query-optimization,Oracle,Query Optimization,我是一名Sybase DBA/性能优化器,被要求研究Oracle上一些SQL查询的性能,看看问题是什么以及为什么查询速度慢。是否有类似于Sybase的展示计划?我需要获取查询或存储过程使用的物理I/o和逻辑I/o、表扫描和索引的数量 我以前使用Embarcadero,现在已经没有了。Explain Plan和/或AutoTrace是Oracle的等效工具,它将为您提供Oracle在执行查询时可能使用的执行计划 在SQLPLUS中,您可以这样做 SQL> set autotrace trac

我是一名Sybase DBA/性能优化器,被要求研究Oracle上一些SQL查询的性能,看看问题是什么以及为什么查询速度慢。是否有类似于Sybase的展示计划?我需要获取查询或存储过程使用的物理I/o和逻辑I/o、表扫描和索引的数量


我以前使用Embarcadero,现在已经没有了。

Explain Plan和/或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
根据详细程度和您的具体场景,这里提供了各种其他选项


Explain Plan和/或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
根据详细程度和您的具体场景,这里提供了各种其他选项


我不确定是否所有这些都可以在其中使用,但可以让您在中放入一个查询并点击Explain Plan查看执行计划。这包括它将要做什么以及它使用的任何索引


这是一个免费的工具,试试看吧

我不确定是否所有这些都可以在其中使用,但可以让您在中放入一个查询并点击解释计划来查看执行计划。这包括它将要做什么以及它使用的任何索引



这是一个免费的工具,试试看吧

把你的问题写在标题里;不要在标题中向我们介绍你自己。把你的问题写在标题中;不要在标题中向我们介绍你自己。有什么地方可以让我读到吗?有样品吗?就像我想展示从a,b中选择*的计划,其中a.field=b.field。跟踪和查询计划都在我看到你的评论之前更新了我上面的帖子:。如果您想跟踪整个会话,可能是您对一个过程的完整执行,请查看我在下面提供的链接。我收到此消息Traceonly选项当前不受支持。对此有何想法?您使用的是哪一版本的Oracle和SQLPLUS。。?您是在SQLPLUS或任何其他工具中执行此操作的吗?SQL developer版本3.0.04是否有我可以阅读的地方?有样品吗?就像我想展示从a,b中选择*的计划,其中a.field=b.field。跟踪和查询计划都在我看到你的评论之前更新了我上面的帖子:。如果您想跟踪整个会话,可能是您对一个过程的完整执行,请查看我在下面提供的链接。我收到此消息Traceonly选项当前不受支持。对此有何想法?您使用的是哪一版本的Oracle和SQLPLUS。。?您是在SQLPLUS或任何其他工具中执行此操作的吗?SQL developer版本3.0.04我有SQL developer。我不知道你能做到。那么我该怎么做呢。放置我的代码并按下哪个底部/选项?谢谢将查询放入工作表顶部的命令窗口。其中一个按钮是“解释计划”。在我的副本中,它是工作表上的第四个按钮。另外-您可能希望使用我包含的链接来获取当前版本。版本3当前版本比Oracle附带的版本1客户端功能更强。我有sql开发者。我不知道你能做到。那么我该怎么做呢。放置我的代码并按下哪个底部/选项?谢谢将查询放入工作表顶部的命令窗口。其中一个按钮是“解释计划”。在我的副本中,它是工作表上的第四个按钮。另外-您可能希望使用我包含的链接来获取当前版本。版本3当前的版本比Oracle附带的版本1客户端功能更强一些。