itstarting:IT进行时

想自己所想,做自己所爱

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  28 随笔 :: 3 文章 :: 55 评论 :: 0 Trackbacks

    以前在项目中使用iBatis,最痛苦的莫过于看到的sql为PreparedStatment输出的一串串"?"的东东。当时也没多想,认为自己写的pstmt就是这么个模样,难不成人家还会自动照顾到你?

   这几天才“忽然”发现P6Spy这么个好东西,拿来一试,果真不错。

   一般使用步骤,言简意赅吧:

  1、下载:

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

  2、安装:

    很简单,把p6spy-1.x.jar和sqlprofiler.jar拷贝到自己的应用的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) 还有,注意把appender设置正确:
#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目录下,运行:java -jar sqlprofiler.jar,即可启动SQL Profiler的GUI界面;
    2)正常启动服务,允许web server,即可在SQL Profiler的GUI界面看到所有的JDBC操作。

  5、高级应用SQL Profiler:

    1)可以生成SQL执行情况报表:点击“pause”按钮,即可产生profiler result;
    2)很cool的是,点击最左边的按钮,可以根据整个运行情况生成数据库索引的创建脚本,我们可以根据这些脚本生成自己的数据库索引,数据库tuning的工作是不是变得越来越简单or傻瓜了呢?呵呵。
    3)其他的包括图形分析报表,自己挖掘吧;
    4)如果用loadRunner、web stress tool等压力测试工具run一把,那么这个报表和索引创建建议就更加逼真和有效了。


  FAQ:

    1)开始配置好后,着急想看效果,结果老是发现connection refused的错误,郁闷了半天,找了半天资料才发现必须先启动SQL Profiler(参考步骤4-1),再启动应用才是正确的步骤。why?好奇人多了,简单的答案就是SQL Profiler把JDBC WRAP了一下,此时会先行与数据库建立一个socket连接,否则这些SQL怎么来,就是这么回事。

posted on 2006-05-30 14:01 IT进行时 阅读(6275) 评论(4)  编辑  收藏 所属分类: Java Tips

评论

# re: SQL Profiler + P6Spy 完全配置手册 2006-05-30 15:46 lizongbo
//简单的答案就是SQL Profiler把JDBC WRAP了一下,此时会先行与数据库建立一个socket连接.

错的太离谱了!!!

那是因为SQL Profiler的spy.properties里把logger设置成log4j的SocketAppender。
这样p6spy在启动的时候就会让Appender去连接SQL Profiler开启的端口,
如果连接失败,之后不会再创建socket。因此必须先启动SQL Profiler.
仔细看spy.properties的配置代码,不要乱误导。


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  回复  更多评论
  

# re: SQL Profiler + P6Spy 完全配置手册 2008-12-13 11:32 today
为什么我的总是连接不起,在界面上的最下面是红的连接失败的提示,不知道是什么原因,能告诉我为什么吗?急!!!  回复  更多评论
  

# re: SQL Profiler + P6Spy 完全配置手册 2008-12-13 11:33 today
可发邮件给我today.doing@gmial.com  回复  更多评论
  

# re: SQL Profiler + P6Spy 完全配置手册 2011-01-18 15:30 IT进行时
陈年老帖了
补充一点关于HSQLDB的配置:
# hsqldb
realdriver=org.hsqldb.jdbcDriver
realdriver2=org.hsqldb.jdbc.JDBCDriver

deregisterdrivers=true

其他都一样  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: