itstarting:IT進(jìn)行時(shí)

          想自己所想,做自己所愛

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            28 隨筆 :: 3 文章 :: 55 評(píng)論 :: 0 Trackbacks

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

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

          ?? 一般使用步驟,言簡(jiǎn)意賅吧:

          ? 1、下載:

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

          ? 2、安裝:

          ??? 很簡(jiǎn)單,把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
          ??? 3) 還有,注意把a(bǔ)ppender設(shè)置正確:
          #The following are for log4j logging only
          #log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
          #log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
          #log4j.appender.STDOUT.layout.ConversionPattern=p6spy - %m%n

          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

          #log4j.logger.p6spy=INFO,STDOUT
          log4j.logger.p6spy=DEBUG, SQLPROFILER_CLIENT

          ? 4、一般使用:

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

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

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


          ??FAQ:

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

          posted on 2006-05-30 14:01 IT進(jìn)行時(shí) 閱讀(6534) 評(píng)論(4)  編輯  收藏 所屬分類: Java Tips

          評(píng)論

          # re: SQL Profiler + P6Spy 完全配置手冊(cè) 2006-05-30 15:46 lizongbo
          //簡(jiǎn)單的答案就是SQL Profiler把JDBC WRAP了一下,此時(shí)會(huì)先行與數(shù)據(jù)庫(kù)建立一個(gè)socket連接.

          錯(cuò)的太離譜了!!!

          那是因?yàn)镾QL Profiler的spy.properties里把logger設(shè)置成log4j的SocketAppender。
          這樣p6spy在啟動(dòng)的時(shí)候就會(huì)讓Appender去連接SQL Profiler開啟的端口,
          如果連接失敗,之后不會(huì)再創(chuàng)建socket。因此必須先啟動(dòng)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  回復(fù)  更多評(píng)論
            

          # re: SQL Profiler + P6Spy 完全配置手冊(cè) 2008-12-13 11:32 today
          為什么我的總是連接不起,在界面上的最下面是紅的連接失敗的提示,不知道是什么原因,能告訴我為什么嗎?急!!!  回復(fù)  更多評(píng)論
            

          # re: SQL Profiler + P6Spy 完全配置手冊(cè) 2008-12-13 11:33 today
          可發(fā)郵件給我today.doing@gmial.com  回復(fù)  更多評(píng)論
            

          # re: SQL Profiler + P6Spy 完全配置手冊(cè) 2011-01-18 15:30 IT進(jìn)行時(shí)
          陳年老帖了
          補(bǔ)充一點(diǎn)關(guān)于HSQLDB的配置:
          # hsqldb
          realdriver=org.hsqldb.jdbcDriver
          realdriver2=org.hsqldb.jdbc.JDBCDriver

          deregisterdrivers=true

          其他都一樣  回復(fù)  更多評(píng)論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 平塘县| 额济纳旗| 久治县| 仪征市| 尚义县| 太原市| 江津市| 博爱县| 承德县| 西丰县| 自治县| 桑日县| 河北区| 雅江县| 唐山市| 同心县| 芷江| 开原市| 灵武市| 宣威市| 普定县| 米林县| 广平县| 松潘县| 厦门市| 武义县| 甘孜| 新巴尔虎左旗| 平定县| 泾阳县| 丰城市| 玉龙| 德清县| 房山区| 隆子县| 改则县| 交城县| 南华县| 安塞县| 长治县| 石景山区|