Oracle如何檢視sql的真實執行計劃

時間 2021-07-18 17:45:20

1樓:

查詢v$sql_plan檢視中的實際執行計劃

1:在視窗執行下面sql語句

select ename, sal from scott.emp, scott.dept

where emp.deptno =dept.deptno

and   dept.loc='chicago';

2:檢視執行sql的sql_id

select sql_id, sql_text from v$sql where sql_text like '%select ename, sal from scott.emp, scott.dept%'

3: 檢視v$sql_plan檢視

select * from v$sql_plan where sql_id='7m5qbhn98j1xw';

通過v$sql_plan檢視檢視實際執行計劃,其實是不太現實的,因為閱讀困難,可讀性差,尤其是複雜sql語句。

2樓:匿名使用者

安裝一個 si objectbrowser 8老版本,能直接看。

oracle如何檢視sql實際執行計劃

3樓:

1、 檢視最近執行的sql語句

select /*recentsql*/s.sql_id,s.child_number,s.

hash_value,s.address,s.executions,s.

sql_text

from v$sql s

where s.parsing_user_id = (

select u.user_id from all_users u

where u.username = 'yh_test'

) and s.command_type in (2 ,3, 6,7 ,189)

and upper(s.sql_text) not like upper( '%recentsql%')

2、使用dbms_xplan.display_cursor檢視執行計劃,它的用法見筆記 《dbms_xplan.display_cursor的用法》,

注意了:若dbms_xplan.display_cursor要以allstats last格式輸出的話,/*+gather_plan_statistics*/這個提示資訊放到查詢語句中是必須的。

select /*+gather_plan_statistics*/ /*plan_statistics1*/ name ,salary from test where name = 't1' ;

select s.sql_id,s.child_number,s.hash_value,s.address,s.executions,s.sql_text

from v$sql s

where upper(s.sql_text) like upper('%plan_statistics1%' )

and upper(s.sql_text) not like upper( '%v$sql%');

select * from table (dbms_xplan.display_cursor('4wktu80k1xy5k' , 0, 'allstats last cost' ));

如何用SQL語句建立檢視,如何用SQL語句建立一個檢視

新模式行業 使用create view語句就可以建立檢視了,具體語句如下 create view viewname as select from tab edsprod tab edsprod是表的名字 where 後面可以接一線限制的條件 刪除檢視 drop view viewname。擴充套件資...

怎麼檢視oracle資料庫資料,如何檢視oracle資料庫的版本

休語繆豔蕙 用資料字典 select from dba users 檢視資料庫裡面所有使用者,前提是你是有dba許可權的帳號,如sys,system select from all users 檢視你能管理的所有使用者!select from user users 檢視當前使用者資訊! 姬越旅遠悅 ...

如何檢視oracle表空間已使用大小

檢視所有表空間使用情況 select b.file id 檔案id號,b.tablespace name 表空間名,b.bytes 1024 1024 m 位元組數,b.bytes sum nvl a.bytes,0 1024 1024 m 已使用,sum nvl a.bytes,0 1024 10...