2012-01-25 6 views
1

です:実行計画の時間は、私はこのようなexecutin計画を実行しようと常に1ミリ秒

ALTER SESSION SET timed_statistics = TRUE; 
set autotrace on explain; 
SELECT ename, dname 
FROM emp e, dept d 
WHERE e.deptno = d.deptno 
AND e.hiredate > TO_DATE('29-JUN-1996','DD-MON-YYYY'); 
set autotrace off; 

出力:

 
------------------------------------------------------------------------------------------------- 
| Id | Operation     | Name    | Rows | Bytes | Cost (%CPU)| Time  | 
------------------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT    |     | 14 | 420 |  6 (17)| 00:00:01 | 
| 1 | MERGE JOIN     |     | 14 | 420 |  6 (17)| 00:00:01 | 
| 2 | TABLE ACCESS BY INDEX ROWID| DEPT    |  4 | 52 |  2 (0)| 00:00:01 | 
| 3 | INDEX FULL SCAN   | DEPT_PRIMARY_KEY |  4 |  |  1 (0)| 00:00:01 | 
|* 4 | SORT JOIN     |     | 14 | 238 |  4 (25)| 00:00:01 | 
|* 5 | TABLE ACCESS FULL   | EMP    | 14 | 238 |  3 (0)| 00:00:01 | 
------------------------------------------------------------------------------------------------- 

Predicate Information (identified by operation id): 
--------------------------------------------------- 

    4 - access("E"."DEPTNO"="D"."DEPTNO") 
     filter("E"."DEPTNO"="D"."DEPTNO") 
    5 - filter("E"."HIREDATE">TO_DATE(' 1996-06-29 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 

あなたは時間が常に1ミリ秒で見ることができるように!

どうしたのですか?変数をtrueに設定する必要がありますか?

+2

あなたのデータセットは小さすぎます(14行です)。数百万行を追加し、両方のテーブルを分析すると、有意義な見積もりが得られるはずです –

答えて

2

実際には、1ミリ秒ではなく1秒の時間が表示されます。

1秒間表示される理由は、データセットが非常に小さいことです。現実的なタイミング見積もりについて考える場合は、さらにデータを追加してみてください。あなたが持っているデータの量が少ないため、1秒はおそらくあまりにも高すぎます。現実には、おそらく1ミリ秒に近い応答時間があります。 (あなたの例は、EMPに14行しかありません。)

希望に役立ちます。

関連する問題