Oracle是否有显示Sybase“showplan”之类的查询执行计划的方法?
我是一名Sybase DBA/性能优化器,被要求研究Oracle上一些SQL查询的性能,看看问题是什么以及为什么查询速度慢。是否有类似于Sybase的展示计划?我需要获取查询或存储过程使用的物理I/o和逻辑I/o、表扫描和索引的数量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
我以前使用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客户端功能更强一些。