檢視sql執行計畫

2022-07-15 17:54:16 字數 1695 閱讀 3835

**

第一種方式: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 聯接型別。下面給出各種聯接型別,按照從最佳型別到最壞型別...