Oracle 查看sql语句执行计划方法
生活随笔
收集整理的這篇文章主要介紹了
Oracle 查看sql语句执行计划方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
注意這篇文章只介紹查看sql語句執行計劃的方法, 并不是說明如何看懂執行計劃.
一般來講, 直接在sqlplus 執行 set autotrace on; 就可以了
其前提是登陸用戶必須有視圖? v_$sesstat, v_$statname, v_$mystat? 的select 權限
參考:
http://nvd11.blog.163.com/blog/static/20001831220130804213161/
如圖:
?
?
其實主要系想介紹另一種方法,
在之前文章已經見過oracle硬解析過的sql及其執行計劃會緩存在shared pool中.
其中執行過的sql語句可以在v$sql 查看, 并會分配1個sql id,
當獲得sql_id 后可以用dbms_xplan.display_cursor(sql_id) 來獲得執行計劃.
做個例子
如上面那條執行語句:
select a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and a.empno=7788;
因為已經執行過一次了, 所以會緩存在v$sql 中的,
查看v$sql 獲得sql_id:
可以獲得sql_id 是
?
28cns5ddtndpb
接下來執行select * from table(dbms_xplan.display_cursor('28cns5ddtndpb'));
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
一般來講, 直接在sqlplus 執行 set autotrace on; 就可以了
其前提是登陸用戶必須有視圖? v_$sesstat, v_$statname, v_$mystat? 的select 權限
參考:
http://nvd11.blog.163.com/blog/static/20001831220130804213161/
如圖:
?
?
其實主要系想介紹另一種方法,
在之前文章已經見過oracle硬解析過的sql及其執行計劃會緩存在shared pool中.
其中執行過的sql語句可以在v$sql 查看, 并會分配1個sql id,
當獲得sql_id 后可以用dbms_xplan.display_cursor(sql_id) 來獲得執行計劃.
做個例子
如上面那條執行語句:
select a.ename, b.dname from emp a, dept b where a.deptno = b.deptno and a.empno=7788;
因為已經執行過一次了, 所以會緩存在v$sql 中的,
查看v$sql 獲得sql_id:
可以獲得sql_id 是
?
28cns5ddtndpb
接下來執行select * from table(dbms_xplan.display_cursor('28cns5ddtndpb'));
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的Oracle 查看sql语句执行计划方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:让 ThinkPad 的中键加小红帽
- 下一篇: Oracle Buffer-cache