驗證 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...