监控和剖析数据库操作 -- P6Spy、SQL Profiler、IronTrack SQL 应用实践要点记录

参考:

监控和剖析数据库操作 -- 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 SQL分析SQL

1. 获取jar包和配置文件:目前 IronTrack 项目似乎已经不再继续,jar包等只能从 ibm 那篇文章中提供的地址得到。

 

2. 调整 spy.properties 中的配置:

在 step1 的配置文件的基础上,增加以下配置:

module.ibeam=com.irongrid.ibeam.server.IBeamFactory
monitorport=2000

 

3. 调整Spring 配置文件中的数据源配置:同 step1中的3

 

4. 先运行 java -classpath lib/ -jar irontracksql.jar 启动IronTrack  SQL的控制台,然后运行应用程序。

注:

1) 下载下来的 IronTrackSQL.zip 中lib下的jar包都是要用到的,log4j-1.2.8.jar 可以移动到 lib 目录下或者和 irontracksql.jar 放在同个目录下。

2) p6spy.jar 和 irontracksql.jar 如果不在同个目录下(比如 p6spy.jar 是通过maven依赖方式引入的),运行应用程序时把 irontracksql.jar 加入classpath 即可,否则会报异常。

 

至此OK,IronTrack  SQL的控制台中顺利看到SQL信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 p6spy 来保存 SQL数据库p6spy 是一个用于监控记录 JDBC 驱动程序生成的 SQL 语句的工具。它提供了一个代理驱动程序,可以将 SQL 输出到日志文件或数据库中。 以下是一些步骤来配置 p6spy 来保存 SQL数据库: 1. 导入 p6spy 的依赖:在你的项目中添加 p6spy 的依赖,例如 Maven 中的以下代码片段: ``` <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.9.1</version> </dependency> ``` 2. 配置数据库连接:在你的应用程序中,将数据库连接的驱动程序类名设置为 p6spy 的驱动程序类名。例如,对于 MySQL 数据库: ``` jdbc.driver=com.p6spy.engine.spy.P6SpyDriver ``` 3. 配置 p6spy:在你的应用程序的配置文件中,添加 p6spy 的配置项。例如,在 Spring Boot 应用程序的 `application.properties` 文件中添加以下配置: ``` spring.datasource.url=jdbc:p6spy:mysql://localhost:3306/mydatabase spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect ``` 4. 配置日志输出:在 p6spy 的配置文件中,指定你想要将 SQL 输出日志保存到的目标位置,可以是日志文件或数据库。例如,在 Spring Boot 应用程序的 `application.properties` 文件中添加以下配置: ``` # 将 SQL 输出到文件 spy.logFile=/path/to/log/file.log # 将 SQL 输出到数据库 spy.appender=com.p6spy.engine.spy.appender.Slf4JLogger ``` 这样,p6spy 就会拦截应用程序生成的 SQL 并将其保存到指定的日志文件或数据库中。你可以根据需要调整 p6spy 的配置和日志输出方式。希望这对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值