p6spy+sqlprofiler

最近在一个基于J2ee项目中发现许多查询功能效率非常差,于是准备对这些查询进行优化。上网转了一圈发现 p6spy+sqlprofiler组合能到达我的要求,于是下来实验了下。将安装过程记录下来和大家分享

一、资源下载

  • 下载 P6Spy 软件包。
  • 下载 SQL Profiler 软件包。

    注:虽然P6Spy是一个独立的安装包但是其生成的日志非常难看,如果直接看没有什实用价值。还好开源社会里面真是藏龙卧虎啊,早就要高人想到了这个问题。这就是SQL Profiler ,以下安装步骤都是基于p6spy+sqlprofiler的组合。

    二、配置P6Spy和SQL Profiler
    1、解压P6Spy将下面的p6spy.jar 拷贝到项目的classpath(如果是web项目则拷贝到/WEB-INF/lib 下面)
    2、解压SQL Profiler 将其中的spy.properties拷贝到calsspath(如果是web项目则拷贝到/WEB-INF/classes 下面。注意:一定要从SQL Profiler 文件夹下面拷贝spy.properties,否者没有办法使用SQL Profiler )
    3、修改spy.properties中的配置

    1 、打开 spy.properties 文件,把 realdriver 的值改为你的程序的数据库驱动名称; 
    2 、deregisterdrivers = false 改为 deregisterdrivers = true
    3 、realdriver 改成项目实际用地数据库驱动(spy.properties中都有只要将相关的注释去掉就可以了,老外想到就是周到啊)
        4、Log4j 相关属性的配置
               log4j.appender.SQLPROFILER_CLIENT=org.apache.log4j.net.SocketAppender
               log4j.appender.SQLPROFILER_CLIENT.RemoteHost=192.168.0.58(该ip为运行SQL Profiler应用的机器的ip)
               log4j.appender.SQLPROFILER_CLIENT.Port=4445
               log4j.appender.SQLPROFILER_CLIENT.LocationInfo=true
               log4j.logger.p6spy=DEBUG, SQLPROFILER_CLIENT

    4、修改系统中的配置文件

    1 、修改你应用系统中的数据库驱动名称为 P6Spy 的驱动程序名称 com.p6spy.engine.spy.P6SpyDriver 其它的全部使用默认值,暂时不用修改; 

    三、开始启动程序

    1、sqlprofiler巧妙的利用的Log4j的sock日志写入功能获取远程服务器上面有P6Spy 产生的sql信息,因此要先启动sqlprofiler。启动步骤如下

    java -jar sqlprofiler.jar 

    2、启动被监控的程序

    3、sqlprofiler的UI窗口中会出现sql调用信息。

  • 你可能感兴趣的:(p6spy+sqlprofiler)