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

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

省時又省力 用Oracle擴展SQL跟蹤數據

瀏覽:215日期:2023-11-24 11:45:04
使用擴展SQL跟蹤數據來了解是什么在耗費這么長的時間。假如有一天你開車去上班,但最后還是沒能及時參加一個重要會議。你無法將你的革命性的想法呈現給客戶,所以他們也不會采用。你的拖拖拉拉使你感到沮喪,你發誓決不再犯同樣的錯誤。那么,為了不再發生類似情況,你怎么判定問題的原因呢? 檢查汽車外表是否有缺陷,因為外表有缺陷會使汽車的最高速度降低1%或更多。 檢查車輪定位,因為外傾角、后傾角或前束角不合適都會導致汽車的操縱不靈活并且耗費時間。 檢查發動機,以確保達到額定馬力的99%或更高。假如不是這樣,則要考慮重裝或更換發動機。 不,你可能不會采用這種檢查方法;那樣太可笑了。你可能會以完全不同的方式來判定問題之所在,可能只是問你自己一個簡單的問題:什么事情讓我花了這么長時間? 從這個角度出發,問題就迎刃而解了。假如開車需要40分鐘,而你在會議開始前20分鐘才動身,那么下次就要提前30分鐘動身。假如因為交通擁堵浪費了20分鐘,那么,下次要么再早一些動身,換條路線,要么更仔細地查看早7點的路況報告。假如是你迷了路,結果浪費了20分鐘去兜圈子,那么下次你大概就要事先看看地圖。如此等等。 我感到希奇的是,那些擅長解決日常性能優化問題的數據庫專業人員在工作中卻使用完全不同的方法來解決數據庫性能問題。許多數據庫'調優人員'從來不問,'是什么讓這個程序運行了這么長時間?'相反,他們會參考檢查內容清單,并試圖阻止錯誤發生: 檢查所有Oracle塊請求是否都由數據庫緩存提供服務; 檢查是否有全表掃描; 檢查所有排序是否都在內存中進行; 檢查重做日志是否與其他所有數據庫文件進行了適當的隔離等等。 對于某些工作來說,使用檢查內容清單也許很好。但是對于判定性能問題這樣的工作,試圖確定理論上可能會出錯的每一件事,從而對這個問題進行處理的做法的效率會很低。更有效的方法就是找到這個簡單問題的答案:是什么花了這么長時間? 用于優化Oracle程序的好的策略就如同日常生活中用到的策略。就像這樣: 1. 使用專門的儀器來測定程序的性能,從而監視運行速度慢的程序。 2. 為運行慢的程序創建資源描述,把程序的響應時間細分為幾種有用的類型。 3. 通過首先處理響應時間最長的部分來縮短程序的響應時間。 當你了解了若干技術細節之后,這個方法就非常簡單了。假如你真的這樣做,那么每次你都能獲得一個有用的方法,久而久之,你將能在進行性能改進之前預知其結果。 跟蹤 假如你有用于收集程序中每個執行步驟的時間統計信息的高級工具,那就用吧。但只收集匯總數據(如通過對系統全局區[SGA]或其基礎共享存儲段采樣獲得的數據)的工具對于某些類型的問題就不適合。 使用昂貴的監控工具時最常見的匯總錯誤是它們會跨整個Oracle數據庫實例來匯總某一給定時間間隔內資源的使用情況。但是,運行速度慢的程序實際上可能不受資源爭用問題的影響,而這個問題卻完全控制著系統中一些不太重要的程序的性能。 即便是那些在Oracle數據庫會話級上匯總信息的工具在診斷一些重要的問題類型時也存在著缺陷。例如,假設一個程序運行10分鐘,調用了10000次Oracle SQL*Net message from client 這一'等待事件',會話等待該事件的總用時為8.3分鐘。這意味著會話對SQL*Net message from client事件的等待時間平均為3秒。但是單從匯總數據看,你無法知道這10000次調用是否每次都用3秒,還是這些調用中也許有一個用了5分鐘,而其余9999次調用每次只用0.02秒。這兩種情況需要進行完全不同的處理。 在這種情況下最能為你提供幫助的診斷數據是Oracle的擴展SQL跟蹤數據。擴展SQL跟蹤文件按時間順序顯示了Oracle數據庫內核在指定時間內所完成工作的逐條記錄。收集擴展SQL跟蹤數據幾乎是免費的。最大的花銷是存儲每一個需要引起注重的跟蹤文件所需磁盤空間(很少超過幾兆字節)的費用。 跟蹤自己的代碼。假如能訪問程序的源代碼,則打開其擴展SQL跟蹤就非常輕易。首先必須確保會話的TIMED_STATISTICS和MAX_DUMP_ FILE_SIZE參數設置正確: Code: [Copy to clipboard]alter session set timed_statistics=true;alter session set max_dump_file_size=unlimited; 假如沒有設置TIMED_STATISTICS=TRUE,則數據庫內核將把0值而不是真正的持續時間發送到跟蹤文件中。假如對MAX_DUMP_ FILE_SIZE嚴加限制,則會在跟蹤文件中生成下面這樣的消息,而不是你想要的時間數據: ***DUMP FILE SIZE IS LIMITED TO 1048576 BYTES ***接下來是激活跟蹤。有幾種方法可以采用。過去的方法是使用ALTER SESSION命令,如下所示: Code: [Copy to clipboard]alter session set events '10046 trace name context forever, level 12'/* code to be traced goes here */alter session set events '10046 trace name context off' 更好的方法是使用DBMS_SUPPORT包來激活擴展SQL跟蹤:    Code: [Copy to clipboard]dbms_support.start_trace(waits=>true, binds=>true)/* code to be traced goes here */dbms_support.stop_trace() 請注重DBMS_SUPPORT 沒有文檔說明,可能也不是數據庫默認安裝的一部分。要了解DBMS_SUPPORT的信息,請參考MetaLink ( metalink.oracle.com)。 跟蹤別人的代碼。假如你想跟蹤沒有讀/寫權限的代碼,則激活擴展SQL跟蹤就有點麻煩了。但也不會難很多。你首先要獲得你想跟蹤的會話的V$SESSION.SID和V$SESSION.SERIAL#值。然后使用下面的過程調用,可以設置所選會話的TIMED_STATISTICS和MAX_DUMP_FILE_SIZE參數: Code: [Copy to clipboard]dbms_system.set_bool_param_in_session(sid => 42,serial# => 1215,parnam => 'timed_statistics',bval=> true)dbms_system.set_int_param_in_session(sid => 42,serial# => 1215,parnam => 'max_dump_file_size',intval => 2147483647) (對于Oracle8 8.1.6以前的版本,你可以用ALTER SYSTEM命令處理這些參數。) 接下來要激活跟蹤。有幾種方法可以采用,包括下面兩個: 方法一是使用DBMS_SUPPORT: Code: [Copy to clipboard]dbms_support.start_trace_in_session(sid => 42,serial# => 1215,waits  => true,binds  => true)/* code to be traced executes during this time window */dbms_support.stop_trace_in_session(sid => 42,serial  => 1215) 若想激活擴展SQL跟蹤,請不要使用名為SET_SQL_TRACE_IN_SESSION的DBMS_SUPPORT過程。該過程不答應在跟蹤文件中指定等待和綁定的數據。 第二種方法更為精致,但在Oracle數據庫10g之前的版本中并不支持這種方法。 DBMS_MONITOR包的引入解決了許多復雜診斷數據收集問題,這些問題是由連接共享和多線程操作所引起的。你可以在Oracle數據庫10g中指定要跟蹤的服務、模塊或行動,而不指定要跟蹤的Oracle數據庫會話: Code: [Copy to clipboard]dbms_monitor.serv_mod_act_trace_enable(service_name => 'APPS1',module_name  => 'PAYROLL',action_name  => 'PYUGEN',waits => true,binds => true,instance_name => null)/* code to be traced executes during this time window */dbms_monitor.serv_mod_act_trace_disable(service_name => 'APPS1',module_name  => 'PAYROLL',action_name => 'PYUGEN') 利用DBMS_MONITOR包,Oracle可為要跟蹤的特定的業務操作提供完全支持激活或停止診斷數據收集的方法。測試擴展SQL跟蹤。試一試吧。查看第一個跟蹤文件只需使用一個簡單的SQL*Plus會話,就如同下面這樣: Code: [Copy to clipboard]alter session set timed_statistics=true;alter session set max_dump_file_size=unlimited;alter session set tracefile_identifier='Hello';/* only in Oracle Database 8.1.7and later */alter session set events '10046 trace name context forever, level 12';select 'Howdy, it is 'sysdate from dual;exit; 然后在由USER_DUMP_DEST實例參數的值命名的目錄中尋找文件名中包含字符串'Hello'的最新寫入的.trc文件。用你最喜歡的文本編輯器打開它。 閱讀Oracle MetaLink注釋39817.1或(Optimizing Oracle Performance,《優化Oracle性能》)一書,以便大概了解原始跟蹤文件中有些什么。一定要運行跟蹤文件上的tkprof,并研究其輸出,但也不要由于有了tkprof就不再看原始的跟蹤文件。跟蹤文件中還有許多tkprof沒有向你展示的內容。 假如你不僅需要一個由簡單的SELECT from DUAL 生成的跟蹤文件,還需要一個更感愛好的跟蹤文件,那么需要跟蹤下面這條SQL語句:    Code: [Copy to clipboard]select object_type, owner, object_name from dba_objects; 由此得到的跟蹤數據會讓你感到很滿足,因為Oracle數據庫內核替你完成了驚人的工作量。
標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本综合字幕| 伊人网在线播放| 婷婷色综合网| 国精品一区二区| 亚洲精品一二三区区别| 中文在线一区| 香蕉久久久久久| 欧美日韩夜夜| 欧美精品导航| 亚洲不卡系列| 亚洲国产福利| 久久精品国产99久久| 国产精品av一区二区| 老鸭窝毛片一区二区三区| 日日夜夜免费精品| 久久成人福利| 日韩精品永久网址| 欧美丝袜一区| 视频一区国产视频| 国产精品亚洲综合久久| 国产一二在线播放| 黄色亚洲在线| 日本欧美韩国一区三区| 成人午夜在线| 尤物在线精品| 亚洲精品美女91| 久久精品资源| 香蕉精品视频在线观看| 日韩精品一区二区三区中文| 精品国产亚洲一区二区三区在线| 99久久精品费精品国产| 色综合视频一区二区三区日韩 | 国产精品人人爽人人做我的可爱| 免费在线观看视频一区| 日韩在线黄色| 国产66精品| 美女久久一区| 国产激情精品一区二区三区| 久久在线电影| 亚洲精品综合| 亚洲深夜视频| 日韩va亚洲va欧美va久久| 久久电影tv| 日本成人中文字幕在线视频| 综合日韩av| 亚洲不卡视频| 亚洲不卡av不卡一区二区| 日本aⅴ精品一区二区三区| 日韩在线视频精品| **爰片久久毛片| 激情视频一区二区三区| 免费久久99精品国产自在现线| 久久亚洲道色| av不卡免费看| 日韩精品一级| 三级欧美韩日大片在线看| 日韩精品一级| 99久久久久国产精品| 日韩福利视频一区| 99久久激情| 欧美一区自拍| 欧美~级网站不卡| 国产美女精品视频免费播放软件| 国产99精品一区| 久久av日韩| 免费视频最近日韩| 日韩欧美一区二区三区免费看| 日本欧美一区二区在线观看| 亚洲精品电影| 精品一区二区男人吃奶| 亚洲免费播放| 国产精品麻豆久久| 青青草国产精品亚洲专区无| av亚洲在线观看| 风间由美中文字幕在线看视频国产欧美| 日韩在线播放一区二区| 午夜av成人| 另类小说一区二区三区| 婷婷精品在线| 亚洲深夜av| 999国产精品视频| 成人在线视频免费看| 日韩国产在线观看| 国产精品呻吟| 五月激情久久| 福利片在线一区二区| 国产日韩一区二区三区在线| 久久成人一区| 蜜臀av免费一区二区三区| 国产福利91精品一区二区| 国产探花在线精品一区二区| 天堂成人免费av电影一区| 日韩久久一区二区三区| 欧美成人aaa| 国产亚洲一区| 日韩精选在线| 久久先锋影音| 亚洲黄色在线| 色88888久久久久久影院| 国产精品亚洲四区在线观看| 亚洲图片久久| 视频在线在亚洲| 亚洲欧洲另类| 免费欧美一区| 婷婷中文字幕一区| 99精品视频在线| 久久婷婷亚洲| 亚洲天堂1区| 深夜视频一区二区| 日韩电影免费网址| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日本欧美一区| 天堂久久av| 日日夜夜免费精品视频| 亚洲最新av| 亚洲精品乱码| 婷婷视频一区二区三区| 蜜臀久久99精品久久久久宅男| 国产综合婷婷| 亚洲韩日在线| 午夜精品影院| 欧美91视频| 欧美精品一二| 国产一区成人| 亚洲精选成人| 日韩高清二区| 国产精品一站二站| 美女久久久久久 | 亚洲精品在线影院| 999国产精品视频| 欧美日韩激情在线一区二区三区| 国产91精品对白在线播放| 国产精品88久久久久久| 国产精品毛片在线看| 一区二区国产在线| 日本午夜免费一区二区| 国产精品久一| 四虎国产精品免费观看| 久久久久午夜电影| 香蕉成人久久| 日本亚洲欧洲无免费码在线| 国产欧美三级| 女生影院久久| 亚洲少妇在线| 奇米色欧美一区二区三区| 国产精品日本一区二区不卡视频| 国产精品伊人| 狠狠躁少妇一区二区三区| 黑丝美女一区二区| 亚洲精品国产精品粉嫩| 国产精品s色| 99久久亚洲精品| 蜜桃一区二区三区在线观看 | 日韩在线观看一区二区三区| 免费视频一区二区三区在线观看| av资源亚洲| 久久国产高清| 国产日韩欧美一区二区三区在线观看 | 天堂精品久久久久| 国产激情一区| 不卡一区2区| 久久国产日韩欧美精品| 日韩一区二区中文| 免费在线观看精品| 麻豆精品久久久| 一区免费在线| 国产乱码精品一区二区亚洲| 精品国产免费人成网站| 首页欧美精品中文字幕| 精品视频国产| 亚洲精品一区二区妖精| 日本特黄久久久高潮| 国产高清不卡| 亚洲日本在线观看视频| 高清av一区| 一本综合精品| 五月天av在线| 青草综合视频| 欧美成人国产| 毛片不卡一区二区| 美女国产精品| 日本在线高清| 日韩不卡一区二区三区| 少妇精品导航| 国产欧美日韩一区二区三区在线| 久久精品国内一区二区三区水蜜桃| 综合国产精品| 精品捆绑调教一区二区三区| 日本欧美在线| 影音先锋久久| 日韩av专区| **爰片久久毛片| 亚洲黄页一区| www在线观看黄色| 国产情侣久久| 三级欧美在线一区| 久久久精品五月天| 美日韩一区二区三区| 亚洲毛片视频| 亚洲性图久久|