参考:
监控和剖析数据库操作 -- P6Spy、SQL Profiler、IronTrack SQL 使用简介
p6spy介绍
Spring使用p6spy监控sql
jboss下p6spy+IronTrackSql监视连接池的配置方法(备忘)
P6Spy & Irontrack SQL 简单使用
SSH中集成P6SPY,irontrack sql,sqlprofiler
?
应用实践step 1: 使用P6Spy输出SQL log
1. 获取jar包和配置文件:
1)?P6Spy jar包(by maven):
?
<dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>1.3</version> </dependency>
或 by: http://sourceforge.net/projects/p6spy/
?
2) spy.properties 可从 P6Spy 的源码包中获得。
?
2. 调整 spy.properties 中的配置:
1) 设置 dateformat=yyyy-MM-dd HH:mm:ss
设置下时间格式,提高时间戳的可读性。
?
注:与Spring集成的话不需要修改realdriver
?
3. 调整Spring 配置文件中的数据源配置:
原配置:
?
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /> <property name="username" value="test" /> <property name="password" value="test" /> </bean>
?调整为:
?
<bean id="dataSourceRaw" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /> <property name="username" value="test" /> <property name="password" value="test" /> </bean> <bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource"> <constructor-arg ref="dataSourceRaw" /> </bean>
?
至此OK,spy.log 中顺利看到SQL log.
?
P6Spy 基本上是通过代理的方式,在原来的commit、rollback、execute等等方法前后增加了计时、日志输出等,并尽可能做到应用简便、耦合性低,它的设计思想非常值得学习和实践。
?
应用实践step 2: 使用P6Spy+SQL Profiler分析SQL
1. 获取jar包和配置文件:http://sourceforge.net/projects/sqlprofiler/
下载下来的 sqlprofiler-0.3-bin.zip 中包含了 sqlprofiler.jar 和 spy.properties
?
2. 调整 spy.properties 中的配置:
1) dateformat=
注意:日期格式不能配置,sqlprofiler 中会对日期进行格式化,若这里设置了格式则sqlprofiler中会出现异常。
2) 注释掉 appender=com.p6spy.engine.logging.appender.FileLogger
去掉 # appender=com.p6spy.engine.logging.appender.Log4jLogger 注释符号
去掉 # log4j.appender.CHAINSAW_CLIENT 开头的4个配置项的注释符号
?
3) log4j.logger.p6spy=INFO,STDOUT 改为 log4j.logger.p6spy=INFO,CHAINSAW_CLIENT
?
注:如果用的是sqlprofiler-0.3-bin.zip 中的 spy.properties ,则以上就不需要调整了(因为已经调整好了)。
?
3. 调整Spring 配置文件中的数据源配置:同 step1中的3
?
4. 先运行 java -jar sqlprofiler.jar 启动sqlprofiler的控制台,然后运行应用程序。
?
至此OK,sqlprofiler的控制台中顺利看到SQL信息。
?
应用实践step 3: 使用P6Spy+IronTrack