Junky's IT Notebook

          導(dǎo)航

          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          隨筆分類(224)

          文章分類(5)

          隨筆檔案(228)

          文章檔案(7)

          統(tǒng)計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          SQL Profiler + P6Spy 完全配置手冊

          ?? 以前在項目中使用iBatis,最痛苦的莫過于看到的sql為PreparedStatment輸出的一串串"?"的東東。當(dāng)時也沒多想,認(rèn)為自己寫的pstmt就是這么個模樣,難不成人家還會自動照顧到你?

          ?? 這幾天才“忽然”發(fā)現(xiàn)P6Spy這么個好東西,拿來一試,果真不錯。

          ?? 一般使用步驟,言簡意賅吧:

          ? 1、下載:

          ??? p6spy: http://www.p6spy.com
          ??? SQL Profile: http://www.jahia.net/jahia/page597.html

          ? 2、安裝:

          ??? 很簡單,把p6spy-1.x.jar和sqlprofiler.jar拷貝到自己的應(yīng)用的WEB-INF/lib下即可。

          ? 3、配置:

          ??? 1)修改你 原有 JDBC Driver為:com.p6spy.engine.spy.P6SpyDriver,如果你用了連接池,一回事,把driver換掉;
          ??? 2)修改 spy.properties 中的 realdriver 值為 原有 的JDBC Driver,比如我的是:realdriver=com.ibm.db2.jcc.DB2Driver

          ? 4、一般使用:

          ??? 1)在DOS命令行切換到剛才的WEB-INF/lib目錄下,運行:java -jar sqlprofiler.jar,即可啟動SQL Profiler的GUI界面;
          ??? 2)正常啟動服務(wù),允許web server,即可在SQL Profiler的GUI界面看到所有的JDBC操作。

          ? 5、高級應(yīng)用SQL Profiler:

          ??? 1)可以生成SQL執(zhí)行情況報表:點擊“pause”按鈕,即可產(chǎn)生profiler result;
          ??? 2)很cool的是,點擊最左邊的按鈕,可以根據(jù)整個運行情況生成數(shù)據(jù)庫索引的創(chuàng)建腳本,我們可以根據(jù)這些腳本生成自己的數(shù)據(jù)庫索引,數(shù)據(jù)庫tuning的工作是不是變得越來越簡單or傻瓜了呢?呵呵。
          ??? 3)其他的包括圖形分析報表,自己挖掘吧;
          ??? 4)如果用loadRunner、web stress tool等壓力測試工具run一把,那么這個報表和索引創(chuàng)建建議就更加逼真和有效了。


          ??FAQ:

          ??? 1)開始配置好后,著急想看效果,結(jié)果老是發(fā)現(xiàn)connection refused的錯誤,郁悶了半天,找了半天資料才發(fā)現(xiàn)必須先啟動SQL Profiler(參考步驟4-1),再啟動應(yīng)用才是正確的步驟。why?好奇人多了,簡單的答案就是SQL Profiler把JDBC WRAP了一下,此時會先行與數(shù)據(jù)庫建立一個socket連接,否則這些SQL怎么來,就是這么回事。

          REPLY:
          //簡單的答案就是SQL Profiler把JDBC WRAP了一下,此時會先行與數(shù)據(jù)庫建立一個socket連接.

          錯的太離譜了!!!

          那是因為SQL Profiler的spy.properties里把logger設(shè)置成log4j的SocketAppender。
          這樣p6spy在啟動的時候就會讓Appender去連接SQL Profiler開啟的端口,
          如果連接失敗,之后不會再創(chuàng)建socket。因此必須先啟動SQL Profiler.
          仔細(xì)看spy.properties的配置代碼,不要亂誤導(dǎo)。


          log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
          log4j.appender.SQLPROFILER_CLIENT.RemoteHost=localhost
          log4j.appender.SQLPROFILER_CLIENT.Port=4445
          log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true?

          posted on 2006-05-30 23:40 junky 閱讀(630) 評論(0)  編輯  收藏 所屬分類: iBatis


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 米泉市| 庐江县| 申扎县| 杂多县| 台山市| 仪征市| 大厂| 斗六市| 合肥市| 南丰县| 陆丰市| 京山县| 德庆县| 通江县| 年辖:市辖区| 靖宇县| 盐山县| 射洪县| 明溪县| 任丘市| 新平| 德阳市| 宝兴县| 承德县| 旬邑县| 珲春市| 平昌县| 宜春市| 新河县| 沅陵县| 正镶白旗| 阜新市| 保康县| 美姑县| 类乌齐县| 稷山县| 长治县| 沁阳市| 修文县| 宾阳县| 梅州市|