2012-05-13 24 views
13

Bất cứ ai có thể giải thích cho tôi sự khác biệt giữa kế hoạch thực hiện và kế hoạch giải thích là gì.sự khác biệt giữa kế hoạch giải thích và kế hoạch thực hiện

Khi tôi thực hiện

set autotrace traceonly; 
select * from emp where empno=7369; 

Execution Plan 
---------------------------------------------------------- 
    0  SELECT STATEMENT Optimizer Mode=ALL_ROWS (Cost=1 Card=1 Bytes=38) 
    1 0 TABLE ACCESS BY INDEX ROWID SCOTT.EMP (Cost=1 Card=1 Bytes=38) 
    2 1  INDEX UNIQUE SCAN SCOTT.PK_EMP (Cost=0 Card=1) 


Explain Plan 

explain plan for select * from emp where empno=7369; 
select * from table(dbms_xplan.display); 

Plan hash value: 2949544139 

-------------------------------------------------------------------------------------- 
| Id | Operation     | Name | Rows | Bytes | Cost (%CPU)| Time  | 
-------------------------------------------------------------------------------------- 
| 0 | SELECT STATEMENT   |  |  1 | 38 |  1 (0)| 00:00:01 | 
| 1 | TABLE ACCESS BY INDEX ROWID| EMP |  1 | 38 |  1 (0)| 00:00:01 | 
|* 2 | INDEX UNIQUE SCAN   | PK_EMP |  1 |  |  0 (0)| 00:00:01 | 
-------------------------------------------------------------------------------------- 

Tôi nhận được kết quả tương tự, vì vậy sự khác biệt giữa hai là gì.

Trả lời

9

explain plan là tuyên bố được sử dụng để hiển thị kế hoạch thực hiện.

Hai mẫu bạn đã hiển thị chỉ được định dạng khác nhau, đó là tất cả.

Bạn không cho chúng tôi biết chính xác bạn đã tạo ra các đầu ra đó cũng như công cụ bạn đang sử dụng.

Nhưng nếu tôi không nhầm, một trong số đó là đầu ra của một autotrace bên trong SQL * Cộng với đầu ra kia khi sử dụng thủ tục của gói dbms_xplan.

+0

: Vâng tôi đã sử dụng menthod nêu trên để tạo ra các kế hoạch và thực hiện kế hoạch giải thích .Nhưng tôi không biết tại sao mọi người đôi khi yêu cầu giải thích kế hoạch và đôi khi kế hoạch thực hiện? –

+0

@GauravSoni: đó chỉ là từ ngữ. Khi họ yêu cầu "kế hoạch thực hiện", họ tập trung vào đầu ra. Khi sử dụng thuật ngữ "giải thích kế hoạch", họ tập trung vào cách chạy nó (thường là câu hỏi sẽ "hiển thị cho chúng tôi ** kết xuất ** của kế hoạch giải nghĩa) –

+0

@a_horse_with_no_name, bạn có thể giải thích chính xác tôi nên diễn giải bảng tại cuối cùng của kế hoạch thực hiện? – Songo