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