您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么使用sql monitor獲取更加詳細的執行計劃”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么使用sql monitor獲取更加詳細的執行計劃”吧!
在數據庫上執行SQL語句,執行完畢或執行過程中可以通過如下語句查詢到
SQL_ID 。
select * from v$sql
where sql_text like '%SELECT BOOK.DESCRIPTION AS%'
order by first_load_time desc ;
(2). 在數據庫上執行如下語句。
select dbms_sqltune.report_sql_monitor(type=>'TEXT', sql_id=>'4t6jwa8nrg0dp',report_level=>'ALL') monitor_report from dual;
點擊查詢出來的"HUGECLOB"值,可以看到TEXT格式的詳細執行計劃(最好保存
為txt后以ultraEdit工具打開,看得比較清晰,這里不貼出來)。一般在SQL運行
后1-3分鐘內可以取到結果,SQL執行超過一定時間后查詢不出執行計劃(已經被刪除)。
注意:不是所有的SQL都會被monitor到,如果沒有看到執行計劃,可以在SQL中加入
提示 /*+monitor*/ 強制對SQL進行監控。
-------------------------------------------------------------------
在Oracle 11g之前的版本,長時間運行的SQL可以通過監控v$session_longops來觀察,當某
個操作執行時間超過6秒,就會被記錄在v$session_longops中,通常可以監控到全表掃描、
全索引掃描、哈希聯接、并行查詢等操作;而在Oracle 11g中,當SQL并行執行時,會立即
被實時監控到,或者當SQL單進程運行時,如果消耗超過5秒的CPU或I/O時間,它也會被監
控到。監控數據被記錄在v$sql_monitor視圖中,也可以通過Oracle 11g新增的package
DBMS_MONITOR來主動對SQL執行監控部署。
v$sql_monitor收集的信息每秒刷新一次,接近實時,當SQL執行完畢,信息并不會立即從
v$sql_monitor中刪除,至少會保留1分鐘,v$sql_plan_monitor視圖中的執行計劃信息
也是每秒更新一次,當SQL執行完畢,它們同樣至少被保留1分鐘。查看執行計劃type有
多種:
type=>'TEXT'
type=>'HTML'
type=>'ACTIVE'
-------------------------------------------------------------------
感謝各位的閱讀,以上就是“怎么使用sql monitor獲取更加詳細的執行計劃”的內容了,經過本文的學習后,相信大家對怎么使用sql monitor獲取更加詳細的執行計劃這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。