**
第一種方式:set autotrace on
第二種方式:explain plan for select sysdate from dual;
第三種方式:dbms_xplan.display_cursor
alter
session
setstatistics_level
=all
;--不設定無法獲得a-rows等資訊
select
sysdate
from
dual
;--執行sql
select
*from
table
(dbms_xplan
.display_cursor
(null
,null
,'allstats'))
; --如果sql_id輸入null 則預設為之前執行的一條sql
--即select
*from
table
(dbms_xplan
.display_cursor)
alter
session
setstatistics_level
=typical
;如果通過awr已經獲取了sql_id,則可以直接得到執行計畫
select
*from
table
(dbms_xplan
.display_awr
('sql_id'))
; select
*from
table
(dbms_xplan
.display_cursor
('sql_id'
,null
,'advanced allstats last peeked_binds'))
;
獲取sql的乙個繫結變數
selectt.
value_string,t
.value_anydata
from
v$sql_bind_capture t
where
sql_id
='c1j018vt5ajdu'
;select
snap_id
,name
,position
,value_string
,last_captured
,was_captured
from
dba_hist_sqlbind
where
sql_id
='c1j018vt5ajdu'
;select
dbms_sqltune
.extract_bind
(bind_data,1
).value_string asa
,dbms_sqltune
.extract_bind
(bind_data,2
).value_string asb
from
wrh$_sqlstat
where
sql_id
='c1j018vt5ajdu'
;
EXPLAIN檢視SQL執行計畫
參考 mysql王者晉級之路 如有錯誤的地方,請大家一定不吝指出,不勝感激。還有,不夠全面,以後隨著理解的深入我會不斷加內容的。我們寫完乙個sql語句,為了讓它高效能地執行,一定要explain一下,檢視一下它的執行計畫。檢視心法 1.首先從查詢型別type列開始檢視,如果出現all關鍵字,那麼不用...
檢視sql語句的執行計畫
explain plan 是乙個很好的分析sql語句的工具,它甚至可以在不執行sql的情況下分析語句.通過分析,我們就可以知道oracle是怎麼樣連線表,使用什麼方式掃瞄表 索引掃瞄或全表掃瞄 以及使用到的索引名稱.你需要按照從裡到外,從上到下的次序解讀分析的結果.explain plan分析的結果...
EXPLAIN命令檢視SQL執行計畫
列名 說明id select識別符,這是select的查詢序列號。select type select型別,可以為以下任何一種 table 輸出的行所引用的表 partitions 如果查詢是基於分割槽表的話,顯示查詢將訪問的分割槽。type 聯接型別。下面給出各種聯接型別,按照從最佳型別到最壞型別...