我是一名Sybase DBA/性能优化器,我被要求调查Oracle上的一些SQL查询的性能,看看问题是什么,以及为什么它很慢。有没有类似于Sybase的展示计划?我需要获取查询或存储过程使用的物理I/O和逻辑I/O、表扫描和索引的数量。
我以前用过Embarcadero,现在不用了。
发布于 2011-07-21 23:55:30
Explain Plan和/或Oracle等同于AutoTrace,它将为您提供在执行查询时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
发布于 2011-07-21 23:55:50
我不确定是否所有这些都在其中,但是Oracle SQL Developer允许您输入一个查询并点击Explain plan来查看执行计划。这包括它将做什么以及它正在使用的任何索引。
这是一个免费的工具,所以试一试吧。:)
https://stackoverflow.com/questions/6778951
复制相似问题