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

您的位置:首頁技術文章
文章詳情頁

Oracle’s DBMS_Profiler:PL/SQL 性能調整

瀏覽:37日期:2023-11-18 17:08:56
Oracle’s DBMS_Profiler:PL/SQL 性能調整DBMS_PROFILER 包舉例 ;;;;下面是我提供的怎樣使用配置的簡單例子,運行配置文件來測試下面例程的性能. 例程用到的自定義腳本緊隨其后.1. 創建過程. 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. 用配置文件調用例程 替換上面的例程, 執行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. 評估執行時間:執行eavluate_profiler_results.sql腳本,得到時間統計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. 正如你看到的,第三行執行時間提高到86毫秒.但是改變if語句,重新執行上面的過程,將會得到新的結果: ;;;;;;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. 正如你看到的, 這種情境下第三行執行時間從86毫秒減少到8毫秒,多余的時間是由于內置trunc()函數引起., 這種情境下假如第一個條件為false,則不會執行trunc()函數.這僅僅是個簡單的例子,當你測試的例程越大,你面臨的挑戰更大.這個配置結果也證實了執行期間代碼被覆蓋多少行,從而讓我們知道處于性能監視中的代碼范圍。 假如任何PL/SQL塊性能出現問題,它也能提煉出各種不同情景的正在在執行的代碼并檢查配置結果,從而查明問題所在。6. 對于一個特定的情景,假如執行一段非凡的代碼段,可以得到合理的分析,即使代碼根本一點都不能運行。環境的創建 默認安裝或數據庫的創建狀態下,DBMS_PROFILER包不會自動安裝,請DBA用profload.sql腳本創建它.用一個權限較大的或一個單獨的用戶,創建存儲統計信息的表。假如用如SYS用戶創建,則給其它用戶授予DML權限,并且對這些表創建一個共同的簡寫名. 創建表的如下: PLSQL_PROFILER_RUNS表:PL/SQL配置的運行細節. PLSQL_PROFILER_UNITS表:運行中每一個庫單元的信息. PLSQL_PROFILER_DATA表:所有配置文件運行時的數據累積. PLSQL_PROFILER_RUNNUMBER序列提供了RUNID運行和解釋配置數據 ORACLE提供了三個表來統計,填充RUNID。有許多第三方的工具可以提供自定義的基于這些數據的報告,ORACLE提供profrep.sql腳本評估數據(在<oracle_home>plsqldemo目錄下),下面的兩個簡單腳本就是上面用到的,用來檢查程序單元的執行時間.執行時間以毫秒存儲 -----------------------------------------------------------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結論 DBMS_PROFILER是非常強大的工具,其一就是可以識別PL/SQL的性能問題.這個工具最好用在開發時期,用來調整基于各種應用的情景的代碼,它也能用很好的調整已在使用中的例程并且采取顯而易見的時間去執行。 總之,這個工具可以給每一行代碼給予性能統計,它可以幫助我們評估和調整到一個出色的水平,當檢查SQL語句的性能問題時,PL/SQL代碼不應該忽略,相反應該調整到最佳的結果.
標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品免费精品自在线观看| 水野朝阳av一区二区三区| av亚洲在线观看| 欧美日韩国产v| 欧美日韩国产一区二区三区不卡| 99精品视频在线| 国产农村妇女精品一区二区| 丝袜美腿高跟呻吟高潮一区| 亚洲一区二区三区四区电影| 日韩高清一区在线| 久久影院资源站| 精品一级视频| 999国产精品永久免费视频app| 亚洲激情国产| 日韩激情视频网站| 四虎8848精品成人免费网站| 婷婷色综合网| 日本欧美一区二区| 水蜜桃久久夜色精品一区| 欧美日韩三区| 国产精品久久久久77777丨 | 天堂日韩电影| 国产午夜久久| 久久99久久久精品欧美| 麻豆成全视频免费观看在线看| 九色porny丨国产首页在线| 午夜日韩在线| 国产精品毛片aⅴ一区二区三区| 老牛影视精品| 模特精品在线| 美女久久精品| 亚洲激情中文| 美女av一区| 日韩精品一二三| 超级白嫩亚洲国产第一| 亚洲丝袜美腿一区| 电影91久久久| 视频一区日韩精品| se01亚洲视频 | 日韩精品亚洲专区在线观看| 在线天堂资源www在线污| 免播放器亚洲一区| 日韩88av| 国产欧美一级| 亚洲一区二区毛片| 国产成人精品一区二区三区免费| 老司机精品久久| 成人一区而且| 欧美影院视频| 91久久国产| 精品久久视频| 青青国产91久久久久久| 欧美另类专区| 91欧美国产| 欧美天堂一区二区| 亚洲一区不卡| 久久久久久免费视频| 国产精品蜜月aⅴ在线| 六月婷婷一区| 波多视频一区| 国产精品www994| 日本精品在线播放| 丝袜a∨在线一区二区三区不卡| av资源亚洲| 日本色综合中文字幕| 黄色欧美日韩| 成人精品亚洲| 日韩久久视频| 久久97视频| 久久国产三级| 日韩精品国产欧美| 一二三区精品| 亚洲欧美网站| 亚洲免费精品| 久久理论电影| 日韩不卡视频在线观看| 成人午夜网址| 国产精品99一区二区三区| 国产精品99久久免费| 日韩专区一卡二卡| 亚洲少妇在线| 国产精品女主播一区二区三区| 激情欧美丁香| 99精品美女| 国产一区清纯| 尤物网精品视频| 国产手机视频一区二区| 亚洲欧美网站| 日韩手机在线| 国产乱人伦精品一区| 国产精品一区二区免费福利视频| 日韩黄色在线观看| 欧美午夜三级| 久久精品免视看国产成人| 国产精品videosex极品| 国产精品欧美一区二区三区不卡| 国产欧美高清| 精品视频亚洲| 综合日韩av| 亚洲a一区二区三区| 久久视频国产| 尤物在线精品| 亚洲影院天堂中文av色| 日韩毛片网站| 欧美经典一区| 极品av在线| 久久一区二区三区电影| 亚洲欧美日韩国产综合精品二区| 免费在线观看不卡| 中文字幕中文字幕精品| 欧美亚洲一级| 精品国产网站| 亚洲成人国产| 国产婷婷精品| 日本亚洲欧洲无免费码在线| 国产精品一区2区3区| 国产成人77亚洲精品www| 免费高潮视频95在线观看网站| 日韩国产专区| 在线精品亚洲| 麻豆成人91精品二区三区| 中文在线中文资源| 久久夜色精品| 欧美国产免费| 91综合网人人| 蜜桃视频欧美| 亚洲精选91| 精品午夜视频| 狠狠干成人综合网| 欧美一区=区三区| 日本久久综合| 亚洲免费影院| 国产精品v日韩精品v欧美精品网站| 亚洲精品在线影院| 一区二区亚洲视频| 美女国产精品久久久| 欧美高清一区| 国产精品欧美一区二区三区不卡| 亚洲福利国产| 日产欧产美韩系列久久99| 精品视频网站| 一区二区三区网站| 国产成人调教视频在线观看| 亚洲神马久久| 国产中文欧美日韩在线 | 精品国产麻豆| 性色av一区二区怡红| 久久精品国产久精国产爱| 好吊一区二区三区| 精品国产99| 最新国产精品久久久| 日韩一区二区三区免费播放| 噜噜噜久久亚洲精品国产品小说| 麻豆国产欧美一区二区三区| 红桃视频国产一区| 欧美黄色一区二区| 亚洲中午字幕| 欧美天堂视频| 国产毛片精品久久| 老牛国产精品一区的观看方式| 你懂的国产精品| 免费在线成人网| 国产91在线播放精品| 日本v片在线高清不卡在线观看| 久久狠狠婷婷| 久久一区国产| 奇米狠狠一区二区三区| 欧美日韩精品免费观看视完整| 日本午夜精品久久久| 精品一区亚洲| 国产成人精品免费视| 欧美亚洲综合视频| 久久最新视频| 欧美中文一区二区| 成人一二三区| 久久av中文| 涩涩涩久久久成人精品| 亚洲激情中文在线| 久久久久蜜桃| 成人在线视频免费看| 人人爱人人干婷婷丁香亚洲| 亚洲一区成人| 免费高潮视频95在线观看网站| 国产乱子精品一区二区在线观看| 日韩在线播放一区二区| 欧美在线亚洲| 亚洲天堂一区二区| 国产白浆在线免费观看| 国产精品夜夜夜| 日本aⅴ精品一区二区三区| 视频一区免费在线观看| 婷婷激情图片久久| 久久九九精品| 不卡福利视频| 日韩高清中文字幕一区二区| 国产91在线精品| 国产一区三区在线播放| 麻豆久久一区| 欧美国产极品| 久久精品欧洲|