驗證explainplan
命令與setautotrace
命令是否為真實執行計畫
0conn/assysdba;
1createtablet1asselect*fromdba_objects;
2insertintot1select*fromt1;
3commit;
4selectcount(1)fromt1;
5createindexidx_t1ont1(object_id);
--收集統計資訊
6execdbms_stats.gather_table_stats(ownname=>'sys',tabname=>'t1',estimate_percent=>100,cascade=>true);
7select*fromtable(dbms_xplan.display);
varxnumber;
varynumber;
exec:x:=0;
exec:y:=100000;
--explain命令
顯示走idx_t1
索引範圍(
range
)掃瞄selectcount(*)fromt1whereobject_idbetween:xand:y;
--dbms_xplan.display_cursor(null,null,'advanced')得到真實執行計畫
indexfastfull快速全掃瞄
---setautotracetraceonly驗證
顯示走idx_t1
索引範圍(
range
)掃瞄結論:
使用setautotrace,setautotrace
源於explainplan
是不準確的
,特別是繫結變數下查詢是不準確的
-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...
如何獲取真實的執行計畫
驗證 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...
獲取執行計畫 EXPLAN PLAN
一般獲取執行計畫有四種途徑 1 執行explain plan,查詢結果輸出表。2 查詢動態效能檢視,它顯示快取在庫快取中的執行計畫 有時查不出結果是因為執行計畫已經不在庫快取中 3 查詢awr或statspack表。4 啟動提供執行計畫的跟蹤功能 set autotrace trace explai...