您好,登錄后才能下訂單哦!
今天小編就為大家帶來一篇關于Oracle中sql量化分析工具介紹的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。
Oracle提供的量化分析工具有explain,sql*trace,tkprof,auto*trace,awr,addm,sql*profiling,sql access advisor,sql tuning advisor,ash等
此次主要整理了explain,sql*trace,tkprof,auto*trace的使用
1.explain
2.sql*trace
3.tkprof
4.auto*trace
1.explain的使用
1.1 先創建plan_table
@?/rdbms/admin/utlxplan ;
1.2 分析sql語句執行計劃
explain plan for select * from dba_objects ;
1.3 查看sql語句執行計劃
@?/rdbms/admin/utlxpls.sql; 9i下只查看串行執行計劃,10g既查看串行也查看并行
@?/rdbms/admin/utlxplp.sql; 查看并行執行計劃
explain并沒有真正的執行sql語句,所以實際過程可能與explain分析結果不相同。如explain分析之后,又對相關表建立了新的索引或者刪除了索引、采集了新的統計信息等操作
10g中的新功能 dbms_xplan
dbms_xplan.display
顯示存儲在v$sql_plan視圖中的語句執行計劃
dbms_xplan.display_cursor
顯示任何加載的cursor中的語句執行計劃
dbms_xplan.display_awr
顯示保存在awr中的語句執行計劃
select plan_table_output from table(dbms_xplan.display()) ;
2.sql*trace和tkprof的使用
大致的過程如下所示
database--(sql trace)--trace file--(tkprof)--report file
sql*trace和explain不同的是,sql*trace不是針對單個sql語句進行執行計劃分析的,而是在會話級,甚至實例級對sql語句進行跟蹤,并在操作系統中產生相應的trace文件
sql*trace是跟蹤sql語句的真實執行執行情況,Oracle提供tkprof程序將trace文件轉換為可讀性較強的文件
2.1 在會話級進行跟蹤
alter session set sql_trace = true ; execute dbms_session.set_sql_trace(true) ;
其他會話的跟蹤
execute dbms_system.set_trace_in_session(session_id,serial_id,true);
分析的時候,首先查看那些會話比較消耗資源,然后從v$session視圖查詢session_id,serial_id,通過以上的命令對這些會話的活動進行跟蹤和分析
2.2 在實例級進行跟蹤
設置sql_trace為true即可
建議不要采取這個措施,會對數據庫產生較大的壓力,會產生太多的trace文件
使用sql_trace產生的trace文件,原始文件閱讀起來相對比較費勁,可以使用tkprof程序進行轉換
例如:
tkprof tracefile outputfile [options]
tkprof tracefile outputfile sys=no explain=hr/hr sort=execcput print=3
sys=no表示不分析sys用戶執行的sql語句
explain=hr/hr 表示連接到hr用戶,并進行執行計劃分析
sort=execcput 表示按照CPU消耗值,對該trace文件所包含的sql語句按照排序進行分析
print=3 表示只是分析前3條sql語句
直接在os輸入tkprof可以查看所有的幫助
tkprof產生的文件,主要分析以下內容
1.各語句執行情況的統計信息
2.各語句的執行路徑信息
3.autotrace的使用
3.1 打開autotrace
set autotrace on
set timing on
執行sql語句
3.2 只看執行計劃、統計信息
set autotrace traceonly
3.3 只看執行計劃
set autotrace traceonly explain
autotrace是語句真正執行之后的執行計劃
3.4 只看統計信息
set autotrace statistics
3.5 查看幫助
set autotrace
Usage: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
3.6 如何查看統計信息
重點查看consistent gets和physical reads指標,分別代表內存消耗和磁盤IO消耗,單位是數據塊大小(db_block_size)。
看完上訴內容,你們對Oracle中sql量化分析工具大概了解了嗎?如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。