如何獲取真實的執行計畫

2022-05-13 14:44:10 字數 1609 閱讀 3341

驗證 explain plan

命令   與  

set autotrace

命令  是否為真實執行計畫

0  conn /as sysdba;     

1  create table t1 as select * from dba_objects;

2  insert into t1 select * from t1;

3   commit;

4   select count(1) from t1;

5   create index idx_t1 on t1(object_id);

--收集統計資訊

6   exec dbms_stats.gather_table_stats(ownname=>'sys',tabname=>'t1',estimate_percent=> 100,cascade=> true);

7   select * from table(dbms_xplan.display);

8 var x number;

var y number;

exec :x :=0;

exec:y :=100000;

--explain命令

顯示走idx_t1

索引範圍(

range

)掃瞄select count(*) from t1 where object_id between :x and :y;

--dbms_xplan.display_cursor(null,null,'advanced')  得到真實執行計畫

index fast full  快速全掃瞄

---set autotrace traceonly 驗證

顯示走idx_t1

索引範圍(

range

)掃瞄結論:

使用set autotrace,set autotrace 

源於explain plan

是不準確的

,特別是繫結變數下查詢是不準確的

-dbms_xplan.display_cursor(null,null,'advanced') 

和10046事件獲取真實的執行計畫

如何獲取真實的執行計畫

驗證 explain plan 命令 與 set autotrace 命令 是否為真實執行計畫 0 conn as sysdba 1 create table t1 as select from dba objects 2 insert into t1 select from t1 3 commit...

如何獲取真實的執行計畫

驗證explainplan 命令與setautotrace 命令是否為真實執行計畫 0conn assysdba 1createtablet1asselect fromdba objects 2insertintot1select fromt1 3commit 4selectcount 1 from...

獲取執行計畫 EXPLAN PLAN

一般獲取執行計畫有四種途徑 1 執行explain plan,查詢結果輸出表。2 查詢動態效能檢視,它顯示快取在庫快取中的執行計畫 有時查不出結果是因為執行計畫已經不在庫快取中 3 查詢awr或statspack表。4 啟動提供執行計畫的跟蹤功能 set autotrace trace explai...