我是一名Sybase DBA /性能優化工程師,被要求查看Oracle上一些SQL查詢的性能,看看問題是什麼以及它爲什麼很慢。是否有類似於Sybase的showplan?我需要獲取物理I/O和邏輯I/O的數量,查詢或存儲過程使用的表掃描和索引。Oracle是否有辦法顯示像Sybase'showplan'這樣的查詢執行計劃?
我曾經使用Embarcadero,我沒有了。
我是一名Sybase DBA /性能優化工程師,被要求查看Oracle上一些SQL查詢的性能,看看問題是什麼以及它爲什麼很慢。是否有類似於Sybase的showplan?我需要獲取物理I/O和邏輯I/O的數量,查詢或存儲過程使用的表掃描和索引。Oracle是否有辦法顯示像Sybase'showplan'這樣的查詢執行計劃?
我曾經使用Embarcadero,我沒有了。
解釋計劃和/或AutoTrace是Oracle Equivalent,它將爲您提供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
有沒有可以閱讀的地方?任何樣品?就像我想顯示的SELECT * FROM a,b where a.field = b.field的計劃。跟蹤和查詢計劃 –
Saro - 在我看到您的評論之前更新了我的帖子:)。如果你想追蹤整個會話(可能是你完成一個程序的執行),請看下面我提供的鏈接。 –
我收到此消息「Traceonly選項目前不支持」。對此有何想法? –
我不是當然,如果所有這些都可用,但Oracle SQL Developer可以讓你查詢並點擊解釋計劃查看執行計劃。這包括它將要執行的操作以及它正在使用的所有索引。
這是一個免費的工具,所以試試看。 :)
把你的問題放在標題中;不要在標題中向我們介紹你自己。 –