日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle’s DBMS_Profiler:PL/SQL 性能調(diào)整

瀏覽:35日期:2023-11-18 17:08:56
Oracle’s DBMS_Profiler:PL/SQL 性能調(diào)整DBMS_PROFILER 包舉例 ;;;;下面是我提供的怎樣使用配置的簡單例子,運(yùn)行配置文件來測試下面例程的性能. 例程用到的自定義腳本緊隨其后.1. 創(chuàng)建過程. create or replace procedure am_perf_chk (pi_seq;;in;number, ;pio_status in out nocopy varchar2) is ;;l_dat date := sysdate; begin ;;if trunc(l_dat) = '21-sep-02' and pi_seq = 1 then ;;;;pio_status := 'OK' ;;else ;;;;pio_status := 'Invalid tape loaded' ;;end if; exception ;;when others then ;;;;pio_status := 'Error in am_perf_chek' end; 2. 用配置文件調(diào)用例程 替換上面的例程, 執(zhí)行call_profiler.sql腳本(腳本代碼參見下面),傳入pi_seq=2 SQL> @d:amcall_profiler.sql Profiler started Invalid tape loaded PL/SQL procedure sUCcessfully completed. Profiler stopped Profiler flushed runid:8 3. 評(píng)估執(zhí)行時(shí)間:執(zhí)行eavluate_profiler_results.sql腳本,得到時(shí)間統(tǒng)計(jì)SQL> @d:amevaluate_profiler_results.sql Enter value for runid: 8 Enter value for name: am_perf_chk Enter value for owner: scott Line;;;Occur;;;;Msec Text---------- ---------- ---------- ------------------------------------------------------------------- 1;;;;procedure am_perf_chk (pi_seq;;in;number, 2;;;pio_status in out nocopy varchar2) is 3; 243.05965l_dat date := sysdate; 4;;;;begin 5; 186.35732if trunc(l_dat) = '21-sep-02' and pi_seq = 1 then 6; 0; 0;;pio_status := 'OK'; 7 else 8;;;;;;;18.416151;;pio_status := 'Invalid tape loaded'; 9 end if; 10;;;;exception 11 when others then 12; 0; 0;;pio_status := 'Error in am_perf_chek';! 13; 12.410361 end;13 rows selected.Code% coverage-------------- 66.66666674. 正如你看到的,第三行執(zhí)行時(shí)間提高到86毫秒.但是改變if語句,重新執(zhí)行上面的過程,將會(huì)得到新的結(jié)果: ;;;;;;Line;;;Occur;;;;Msec Text---------- ---------- ---------- ------------------------------------------------------------------- 1;;;;procedure am_perf_chk (pi_seq;;in;number, 2;;;pio_status in out nocopy varchar2) is 3; 2; 17.978816l_dat date := sysdate; 4;;;;begin 5; 18.419503if pi_seq = 1 and trunc(l_dat) = '21-sep-02' then 6; 0; 0;;pio_status := 'OK'; 7 else 8; 17.512684;;pio_status := 'Invalid tape loaded'; 9 end if; 10;;;;exception 11 when others then 12; 0; 0;;pio_status := 'Error in !am_perf_chek'; 13; 1;.731657 end;13 rows selected.Code% coverage-------------- 66.66666675. 正如你看到的, 這種情境下第三行執(zhí)行時(shí)間從86毫秒減少到8毫秒,多余的時(shí)間是由于內(nèi)置trunc()函數(shù)引起., 這種情境下假如第一個(gè)條件為false,則不會(huì)執(zhí)行trunc()函數(shù).這僅僅是個(gè)簡單的例子,當(dāng)你測試的例程越大,你面臨的挑戰(zhàn)更大.這個(gè)配置結(jié)果也證實(shí)了執(zhí)行期間代碼被覆蓋多少行,從而讓我們知道處于性能監(jiān)視中的代碼范圍。 假如任何PL/SQL塊性能出現(xiàn)問題,它也能提煉出各種不同情景的正在在執(zhí)行的代碼并檢查配置結(jié)果,從而查明問題所在。6. 對(duì)于一個(gè)特定的情景,假如執(zhí)行一段非凡的代碼段,可以得到合理的分析,即使代碼根本一點(diǎn)都不能運(yùn)行。環(huán)境的創(chuàng)建 默認(rèn)安裝或數(shù)據(jù)庫的創(chuàng)建狀態(tài)下,DBMS_PROFILER包不會(huì)自動(dòng)安裝,請(qǐng)DBA用profload.sql腳本創(chuàng)建它.用一個(gè)權(quán)限較大的或一個(gè)單獨(dú)的用戶,創(chuàng)建存儲(chǔ)統(tǒng)計(jì)信息的表。假如用如SYS用戶創(chuàng)建,則給其它用戶授予DML權(quán)限,并且對(duì)這些表創(chuàng)建一個(gè)共同的簡寫名. 創(chuàng)建表的如下: PLSQL_PROFILER_RUNS表:PL/SQL配置的運(yùn)行細(xì)節(jié). PLSQL_PROFILER_UNITS表:運(yùn)行中每一個(gè)庫單元的信息. PLSQL_PROFILER_DATA表:所有配置文件運(yùn)行時(shí)的數(shù)據(jù)累積. PLSQL_PROFILER_RUNNUMBER序列提供了RUNID運(yùn)行和解釋配置數(shù)據(jù) ORACLE提供了三個(gè)表來統(tǒng)計(jì),填充RUNID。有許多第三方的工具可以提供自定義的基于這些數(shù)據(jù)的報(bào)告,ORACLE提供profrep.sql腳本評(píng)估數(shù)據(jù)(在<oracle_home>plsqldemo目錄下),下面的兩個(gè)簡單腳本就是上面用到的,用來檢查程序單元的執(zhí)行時(shí)間.執(zhí)行時(shí)間以毫秒存儲(chǔ) -----------------------------------------------------------Script: call_profiler.sql-----------------------------------------------------------set head offset pages 0select decode(dbms_profiler.start_profiler, '0', 'Profiler started', 'Profiler error')fromdual;--< place your routine in the below block >-- declare l_status varchar2(200);begin am_perf_chk(2, l_status); dbms_output.put_line(l_status);end;/select decode(dbms_profiler.stop_profiler, '0', 'Profiler stopped', 'Profiler error')fromdual;select decode(dbms_profiler.flush_data, '0', 'Profiler flushed', 'Profiler error')fromdual;select 'runid:' plsql_profiler_runnumber.currval fromdual;set head onset pages 200-----------------------------------------------------------Script: evaluate_profiler_results.sql-----------------------------------------------------------undef runidundef ownerundef nameset verify offselect s.line 'Line', p.total_occur 'Occur', p.total_time 'Msec', s.text 'Text'fromall_source s, (select u.unit_owner, u.unit_name, u.unit_type, d.line#, d.total_occur, d.total_time/1000000 total_time fromplsql_profiler_data d, plsql_profiler_units u where; u.runid = &&runid and;u.runid = d.runid and;u.unit_number = d.unit_number) pwhere; s.owner = p.unit_owner (+)and;s.name = p.unit_name (+)and;s.type = p.unit_type (+)and;s.line = p.line# (+)and;s.name = upper('&&name')and;s.owner = upper('&&owner')order by s.line;select exec.cnt/total.cnt * 100 'Code% coverage'from; (select count(1) cnt from plsql_profiler_data d, plsql_profiler_units u where d.runid = &&runid and u.runid = d.runid and u.unit_number = d.unit_number ;;;;;and u.unit_name = upper('&&name') and u.unit_owner = upper('&&owner')) total, (select count(1) cnt from plsql_profiler_data d, plsql_profiler_units u where d.runid = &&runid and u.runid = d.runid and u.unit_number = d.unit_number and u.unit_name = upper('&&name') and u.unit_owner = upper('&&owner') and d.total_occur > 0) exec;undef runidundef ownerundef name結(jié)論 DBMS_PROFILER是非常強(qiáng)大的工具,其一就是可以識(shí)別PL/SQL的性能問題.這個(gè)工具最好用在開發(fā)時(shí)期,用來調(diào)整基于各種應(yīng)用的情景的代碼,它也能用很好的調(diào)整已在使用中的例程并且采取顯而易見的時(shí)間去執(zhí)行。 總之,這個(gè)工具可以給每一行代碼給予性能統(tǒng)計(jì),它可以幫助我們?cè)u(píng)估和調(diào)整到一個(gè)出色的水平,當(dāng)檢查SQL語句的性能問題時(shí),PL/SQL代碼不應(yīng)該忽略,相反應(yīng)該調(diào)整到最佳的結(jié)果.
標(biāo)簽: Oracle 數(shù)據(jù)庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品视频一区二区三区综合 | 91偷拍一区二区三区精品| 伊人久久在线| 国产一区二区视频在线看| 亚洲欧美在线专区| 三级小说欧洲区亚洲区| 日产精品一区| 精品一区二区三区亚洲| 精品国产网站| 久久香蕉精品香蕉| 久久激情av| 久久超碰99| 日韩亚洲精品在线观看| 精品91久久久久| 不卡av一区二区| 日韩精品欧美激情一区二区| 久久av导航| 国产一区二区三区四区二区| 国产精一区二区| 久久三级中文| 国产精品麻豆成人av电影艾秋| 亚洲精品成人一区| 国产精品主播| 日本午夜精品久久久| 国产91在线精品| 欧美成人精品三级网站| 日韩电影免费网址| 性欧美xxxx免费岛国不卡电影| 日韩欧美不卡| 成人台湾亚洲精品一区二区| av中文字幕在线观看第一页| 国内自拍视频一区二区三区| 欧美极品一区二区三区| sm捆绑调教国产免费网站在线观看 | 麻豆高清免费国产一区| 精品日产乱码久久久久久仙踪林| 国产精品一区二区精品| 久久国产麻豆精品| 国际精品欧美精品| 精品国产美女a久久9999| 久久久精品国产**网站| 日韩不卡免费视频| 欧美日韩一视频区二区| 夜鲁夜鲁夜鲁视频在线播放| 欧美日韩一区二区综合| 好吊一区二区三区| 日本午夜精品久久久久| 国产精品入口久久| 国产一区二区三区四区| 午夜国产一区二区| 国产亚洲福利| 亚洲黄色免费看| 老色鬼久久亚洲一区二区| 首页亚洲欧美制服丝腿| 美女毛片一区二区三区四区最新中文字幕亚洲 | 国产精品嫩草影院在线看| 国产乱人伦精品一区| 国产精品一区二区三区av| 亲子伦视频一区二区三区| 国产综合亚洲精品一区二| 天堂av在线一区| 精品视频自拍| 免费污视频在线一区| 婷婷综合福利| 国产精品一区二区三区美女 | 麻豆91精品视频| 国产综合婷婷| 亚洲精品高潮| 精品淫伦v久久水蜜桃| 日韩免费高清| 日韩午夜黄色| 麻豆91在线播放| 色网在线免费观看| 欧美 日韩 国产精品免费观看| 日本色综合中文字幕| 超碰在线99| 日韩精品中文字幕第1页| 自拍自偷一区二区三区| 麻豆高清免费国产一区| 日韩中文欧美在线| 久久精品国产精品亚洲毛片| 亚洲91久久| 欧美91在线|欧美| 欧美jjzz| 日韩在线观看一区二区三区| 久久免费国产| 欧美日韩亚洲一区三区| 久久中文字幕av| 日韩欧美中文在线观看| 国产传媒在线观看| 国产日韩欧美一区二区三区 | 久久亚洲专区| 国产乱子精品一区二区在线观看| 亚洲作爱视频| 久久精品国产网站| 久久国产精品久久久久久电车| 狠狠躁少妇一区二区三区| 亚洲欧美在线专区| 9色国产精品| 精品一级视频| 三级一区在线视频先锋| 久久久久久久久久久9不雅视频| 日韩在线电影| 亚洲网站视频| 久久国产电影| 精品亚洲成人| 国产免费播放一区二区| 香蕉久久国产| 久久久水蜜桃av免费网站| 久久精品国产网站| 日韩中文字幕一区二区高清99| 色爱综合av| 国产成人久久精品一区二区三区| 亚洲欧美高清| 久久高清精品| 麻豆视频一区二区| 亚洲美女91| 久久午夜视频| 久久久久中文| 久久精品毛片| 日韩超碰人人爽人人做人人添| 久久五月天小说| 久久五月天小说| 精品国产中文字幕第一页| 欧美一区影院| 亚洲欧美日本国产专区一区| 亚洲欧洲高清| 久久久精品国产**网站| 免费人成黄页网站在线一区二区| 日韩免费高清| 精品久久97| 欧美国产先锋| 欧美欧美黄在线二区| 日韩av不卡一区二区| 蜜臀久久99精品久久久画质超高清| 麻豆高清免费国产一区| 国产亚洲人成a在线v网站| 中文无码久久精品| 亚洲精品中文字幕99999| 国产免费成人| 四虎在线精品| 神马久久午夜| 青草国产精品| 久久久久午夜电影| 99国内精品| 91久久中文| 亚洲一区资源| 美日韩一区二区三区| 国产激情综合| 国产精品亚洲综合色区韩国| 亚洲天堂成人| 在线一区视频| 久久狠狠婷婷| 1024精品久久久久久久久| 久久精品国语| 久久久久99| 国产精品丝袜xxxxxxx| 久久不见久久见国语| 亚洲精品在线观看91| 亚洲精品一区三区三区在线观看| 99久久久久久中文字幕一区| 高清不卡亚洲| 四虎成人av| 欧美成a人免费观看久久| 日韩欧美一区二区三区在线观看 | 国产美女亚洲精品7777| 国产乱人伦精品一区| 国产视频网站一区二区三区| 精品一区二区三区的国产在线观看 | 涩涩av在线| 国产毛片一区| 蜜桃免费网站一区二区三区 | 一本一道久久a久久精品蜜桃| 亚洲国产专区校园欧美| 一本一道久久a久久| 91亚洲无吗| 国产精品视频3p| 中文字幕一区久| 久久久久久久久丰满| 99视频精品视频高清免费| 亚洲精品美女91| 国产精品亚洲综合久久| 久久久久亚洲| 蜜臀av亚洲一区中文字幕| 日本久久二区| 不卡福利视频| 红桃视频亚洲| 国产伊人久久| 婷婷亚洲综合| 日韩中文av| 日韩理论片av| 亚洲免费在线| 精品成av人一区二区三区| 欧美sss在线视频| 蜜桃av一区| 精品欧美视频| 在线精品视频在线观看高清| 国产精品毛片视频| 亚洲va在线| 蜜臀av一区二区三区|