隨筆-13  評(píng)論-28  文章-63  trackbacks-0

          我們?cè)诜治鰬?yīng)用程序性能問題的時(shí)候,更多地需要關(guān)注其中SQL語句的執(zhí)行情況,因?yàn)橥ǔ?yīng)用程序的性能瓶頸會(huì)在數(shù)據(jù)庫這邊,因此數(shù)據(jù)庫的sql語句是我們優(yōu)化的重點(diǎn)。利用Oracle的10046事件,可以跟蹤應(yīng)用程序所執(zhí)行的SQL語句,并且得到其解析次數(shù).執(zhí)行次數(shù),CPU使用時(shí)間等信息。這對(duì)我們分析、定位數(shù)據(jù)庫性能問題是非常有用的。

          具體的方法如下:

          1、首先獲得spid、sid、serial#,machine為連接oracle的機(jī)器名

          SQL> select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =

          b.addr and a.machine='SYS_F85';
           
          SPID                SID    SERIAL#   MACHINE
          ----------------------------------------------------------------
          24722                15        196 SYS_F85


          2、利用10046事件開始跟蹤

          SQL>execute sys.dbms_system.set_ev(15,196,10046,1,'');
          PL/SQL procedure successfully completed.

          參數(shù)說明:
          15:SID
          196:SERIAL#

          注意這里必須以sysdba登錄。

          3、在應(yīng)用程序中執(zhí)行對(duì)數(shù)據(jù)庫的操作,比如性能較差的一些查詢、插入、刪除操作等。

          4、關(guān)閉事件結(jié)束跟蹤
          SQL>execute sys.dbms_system.set_ev(15,196,10046,0,'');

          PL/SQL procedure successfully completed.

          5、獲得產(chǎn)生的跟蹤文件所在的目錄
          SQL> select value from v$parameter where name = 'user_dump_dest';

          VALUE

          --------------------------------------------------------------------------------
          /oracle/admin/ora9i/udump

          轉(zhuǎn)到該目錄下可以看到生成了一個(gè)ora9i_ora_24722.trc文件,此處的24722即SPID的值。

          6、在命令行下執(zhí)行oracle的tkprof命令,將ora9i_ora_24722.trc轉(zhuǎn)化為文本文件。如:
          $ tkprof  ora9i_ora_24722.trc ora9i_ora_24722.sql

          此時(shí)在ora9i_ora_24722.sql文件中,就可以看到剛才執(zhí)行應(yīng)用程序時(shí)所執(zhí)行的sql語句的執(zhí)行次數(shù)、

          CPU使用時(shí)間等數(shù)據(jù)。

          引用:http://www.aygfsteel.com/xingcyx/archive/2007/01/09/92638.html

          posted on 2008-12-25 19:59 七匹狼 閱讀(416) 評(píng)論(0)  編輯  收藏 所屬分類: oracle
          主站蜘蛛池模板: 武强县| 团风县| 鄂伦春自治旗| 堆龙德庆县| 犍为县| 泗水县| 乌拉特后旗| 喀喇沁旗| 耒阳市| 马边| 土默特左旗| 浦北县| 昆山市| 定日县| 永靖县| 晋城| 广南县| 德昌县| 安陆市| 汕头市| 荆州市| 禹城市| 澎湖县| 德钦县| 渝北区| 达拉特旗| 乐至县| 郧西县| 乌兰察布市| 北宁市| 古蔺县| 宜宾市| 邯郸市| 内黄县| 特克斯县| 抚松县| 新龙县| 泗洪县| 内丘县| 贵溪市| 和林格尔县|