`
xiongzhenhui
  • 浏览: 209714 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

sql性能监控(p6spy使用)

阅读更多

P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架.

通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。

hibernate时,想显示sql语句,可以设置show_sqltrue来达到这个目的,但是参数值全PreparedStatement一样,用?来代替的。
p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。
p6spy: http://www.p6spy.com/

一、P6Spy的安装与使用
1、下载P6Spy的文件包,也可以下载它的源文件包来研究。
2
、将p6spy.jar放到WEB-INF/lib目录下,将spy.properties放到WEB-INF/classes目录下。
3
、修改 原有 JDBC Driver为:com.p6spy.engine.spy.P6SpyDriver其它的都不用更改。
4
、修改 spy.properties 中的 realdriver 值为 原有 JDBC Driver,比如我的是:com.mysql.jdbc.Driver
5
、运行你的应用程序或Web应用程序,可以在spy.log里看到监测到的sql详细记录信息了。
6
、驱动程序加载先后的问题解决
  如果spy.log里出现
  你的程序的数据库驱动名称 is a real driver in spy.properties, but it has been loaded before p6spy. p6spy will not wrap these connections. Either prevent the driver from loading, or try setting 'deregisterdrivers' to true in spy.properties
  请把spy.properties文件里的deregisterdrivers=false改为deregisterdrivers=true,重新运行即可。

我的日志记录产生在 %TOMCAT_HOME%\bin下,此log位置可以能过修改 logfile  = x:\x_dir\spy.log 来控制


打开看看,看里面的日志是不是看起来比较不爽?下面我们安装SQL Profiler来让自已的视线爽一点。
SQL Profile: http://www.jahia.net/jahia/page597.html

二、结合SQL Profiler进行图形化监控与使用
1、下载SQL Profiler的文件包进行安装。
2
、把p6spy.jarsqlprofiler.jar放到WEB-INF/lib目录下,将SQL Profiler自带的spy.properties覆盖原来的classes目录下文件
3
、修改 原有 JDBC Driver为:com.p6spy.engine.spy.P6SpyDriver其它的都不用更改。
4
、修改 spy.properties 中的 realdriver 值为 原有 JDBC Driver,比如我的是:com.mysql.jdbc.Driver
5
、注意要先运行 java -jar sqlprofiler.jar 来启动SQL Profiler,并成功看到启动后界面;
6
、然后再启动你的应用程序或服务器,并开始进行正常的系统请求处理操作;
7
、这样可以在SQL Profiler图形化的界面上看到结果并进行分析了。
并且可以通过保存按钮导出数据库优化建议的索引脚本。

IronTrack SQL: http://www.irongrid.com/ironeyesql

三、结合IronTrack SQL进行图形化监控与使用
1
、下载IronTrack SQL的文件包进行安装.
2
、把irontracksql.jarp6spy.jarlog4j-1.2.8.jar放到classpath中,如果是Web应用程序则放在YourWebApp/WEB-INF/lib/目录下.
3
、把spy.properties放到classes目录下,如果是webapp就放在YourWebApp/WEB-INF/classess/目录下,记得不是lib/目录.
4
、修改你程序的数据库驱动名称为P6Spy的驱动程序名称com.p6spy.engine.spy.P6SpyDriver其它的都不用更改.
5
、打开spy.properties文件,把realdriver的值改为你的程序的数据库驱动名称.
6
、设置监听端口号monitorport=2000
6
、先运行 java -jar irontracksql.jar 来启动IronTrack SQL.
7
、再启动你的应用程序或服务器;
8
、可以在 IronTrack SQL 图形化的界面上看到结果并进行分析了。

网上好多帖子都是说,修改原有 JDBC Driver为:com.p6spy.engine.spy.P6SpyDriver
然后修改spy.properties 中的 realdriver值为原有的JDBC Driver
如果在spring开发环境中使用org.springframework.jdbc.datasource.DriverManagerDataSource来模拟dataSource是不会生效的,

代码

<script></script>  

Code
 1 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 2 <property name="driverClassName">   
 3 <value>com.sybase.jdbc2.jdbc.SybDriver</value>   
 4 </property>   
 5 <property name="url">   
 6 <value>jdbc:sybase:Tds:192.168.0.2:6100/db</value>   
 7 </property>   
 8 <property name="username">   
 9 <value>usr</value>   
10 </property>
11 <property name="password">   
12 <value>pwd</value>
13 </property>
14 </bean>   
15
16


因为在spring加载时我们无法控制先加载哪个,spring会报错不能使用com.p6spy.engine.spy.P6SpyDriver连接到数据库,
其实p6spy只是想做jdbc的代理,而不是真正想连数据库,而spring却不知道这些,所以应该采用另外一种方式来集成p6spy

代码

Code
 1 <bean id="dataSourceTarget" class="org.springframework.jdbc.datasource.DriverManagerDataSource">   
 2     <property name="driverClassName">   
 3     <value>com.sybase.jdbc2.jdbc.SybDriver</value>   
 4     </property>  
 5     <property name="url">   
 6     <value>jdbc:sybase:Tds:192.168.0.2:6100/db</value>   
 7     </property>   
 8     <property name="username">   
 9     <value>usr</value>   
10     </property>   
11     <property name="password">   
12     <value>pwd</value>   
13     </property>   
14 </bean>   
15 <bean id="dataSource" class="com.p6spy.engine.spy.P6DataSource" destroy-method="close">   
16     <constructor-arg>   
17        <ref local="dataSourceTarget"/>   
18     </constructor-arg>   
19 </bean>   

<script></script>
这样就可以把p6spy集成到spring中去了。
令:网上好多文章都介绍使用sqlprofilerp6spy配合,但是IronTrackSQL感觉更好一些!
关于如何使用sqlprofilerIronTrackSQL,配置很简单
对于sqlprofiler只要把sqlprofiler自带的spy.properties放到classpath下就可以了,然后java -jar sqlprofiler.jar
对于IronTrackSQL,还要把irontracksql.jar也放到classpath下,然后java -jar irontracksql.jar

 注意:tomcat不能安装在Program Files文件夹下。如果tomcat安装在Program Files文件夹将无法监控sql和生成sql日志。

分享到:
评论

相关推荐

    p6spy-sql监控

    **P6Spy SQL监控工具详解** ...总结来说,P6Spy是一个强大的SQL监控工具,它能够帮助我们更好地理解数据库性能、优化SQL语句以及保障数据安全。正确配置和使用P6Spy,可以显著提升Java应用程序的数据库管理效率。

    p6spy 在weblogic中的配置 以及使用sqlprofiler监控

    本文将详细介绍如何在WebLogic中配置P6Spy,并利用SQLProfiler进行SQL监控。 ### 1. P6Spy的安装与配置 首先,需要下载P6Spy的最新版本,并将其添加到项目的类路径中。P6Spy的核心组件是`spy.jar`,它提供了一个...

    借鉴p6spy,实现自己的SQL执行监控器项目源代码

    P6Spy是一个广泛使用的开源框架,它允许开发者无侵入地监控和记录应用程序中的所有SQL语句。这个项目的目标是借鉴P6Spy的部分源码,创建一个自定义的SQL执行监控器,以满足特定的需求或提供更定制化的功能。 P6Spy...

    p6spy使用说明.doc

    总结来说,P6Spy是一个强大且灵活的JDBC监控工具,尤其适合于SpringBoot应用,可以帮助开发者监控数据库操作,优化SQL性能,定位慢查询,提升系统的整体效率。正确配置和使用P6Spy,能够极大地提高数据库管理的效率...

    sqlprofiler+p6spy+配制

    同时,将SQL Profiler和P6Spy结合使用,可以提供更全面的数据库性能监控视图。在Java应用中,P6Spy可以捕获和记录所有的SQL请求,而SQL Profiler则可以在服务器端提供更详细的事件追踪。这种组合可以提供从客户端到...

    使用P6Spy和IronTrack SQL进行性能监控

    P6Spy和IronTrack SQL是两款用于数据库监控的工具,它们可以帮助开发者和运维人员深入理解SQL查询的执行情况,从而找出性能瓶颈并进行优化。 首先,P6Spy是一个开源的Java框架,它允许我们在不修改应用程序代码的...

    采用p6spy完整显示hibernate的SQL语句

    P6Spy是一个开源的JDBC代理库,它允许我们监控并记录应用通过JDBC执行的所有数据库操作,包括那些由Hibernate生成的SQL语句。它不仅可以提供完整的SQL语句,还能够提供执行时间、性能指标等详细信息,这对于优化...

    下载 p6spy.jar (内含使用步骤)

    **使用P6Spy进行SQL监控** 1. **查看日志**:P6Spy 会在指定的`logFile`中记录SQL日志,通过阅读这些日志,你可以看到应用程序的每个SQL语句及其执行细节。 2. **性能分析**:根据日志中的执行时间,你可以识别出...

    数据插入监控 p6spy

    4. **配置日志**:P6Spy使用`spy.properties`文件进行配置,其中你可以设置日志格式、日志级别、输出位置等。例如: ```properties logFile=/var/log/p6spy.log logFormat=custom customLogFormat=%(elapsedtime...

    P6Spy 提供数据库性能监控和剖析工具

    通过 P6Spy 我们可以对 SQL 语句进行拦截,相当于一个 SQL 语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。P6Spy 用 Log4J 来记录 JDBC 调用的日记信息。 自从 2003 年 11 月 30 日 P6Spy 版本 1.3 ...

    p6spy java 使用

    1. 性能监控:通过分析 P6Spy 的日志,可以找出执行慢的 SQL,进而优化数据库查询。 2. 问题排查:当遇到数据库相关的问题时,查看 P6Spy 的日志可以帮助定位问题所在,因为它们提供了完整的 SQL 语句及其执行上下文...

    使用P6spy打印ibatis执行的SQL语句

    3. **配置日志**:P6Spy使用自己的日志框架,所以我们需要在应用目录下创建一个名为`spy.properties`的配置文件,定义日志输出的格式和位置。例如: ``` logFile=/var/log/app/p6spy.log logLevel=DEBUG append=...

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    使用P6Spy,开发者可以获取到SQL执行时间、事务处理细节等重要信息,这对于性能优化和调试非常有帮助。P6Spy的安装通常涉及到配置数据库驱动类路径,设置代理驱动,以及配置spys.properties文件来定制日志格式和内容...

    weblogic server 11g +p6spy +sql profiler 配置

    WebLogic Server 11g是一...通过以上配置,WebLogic Server 11g将能够使用P6Spy和SQL Profiler进行数据库性能监控,为系统的优化提供数据支持。记得定期检查和分析日志,持续优化数据库性能,以保持系统高效稳定运行。

    p6spy简介显示hibernate配置

    3. **性能监控**:通过记录SQL执行时间和其他相关信息,P6Spy可以帮助识别性能瓶颈,从而优化数据库操作。 4. **无需代码修改**:P6Spy的工作原理是通过代理JDBC驱动,使得应用无需直接修改数据库连接代码即可实现...

    p6spy精简版-跟踪sql工具

    【p6spy精简版-跟踪SQL工具】是一款专为数据库操作监控设计的工具,它通过对JDBC驱动的拦截,实现对SQL语句的透明跟踪。这个精简版旨在简化p6spy的原生配置和使用流程,让更多非开发人员也能便捷地利用此工具来监控...

    Tomcat6.x + p6spy + IronTrackSQL 监控sql性能

    标题 "Tomcat6.x + p6spy + IronTrackSQL 监控sql性能" 所涉及的知识点主要集中在Java Web服务器的管理和数据库性能监控上。在这个配置中,Tomcat6.x是一个广泛使用的开源Java Servlet容器,它负责运行Java Web应用...

    p6spy.rar输出完整带参sql

    P6Spy不仅记录SQL,还提供了一套性能指标,如执行时间、错误计数等,帮助开发者识别慢查询和瓶颈。这些信息对于数据库性能优化至关重要。 7. **使用场景** - **问题排查**:当应用程序遇到数据库相关问题时,P6...

    监控和剖析数据库 P6Spy、SQL Profiler、IronTrack SQL

    本文将详细介绍P6Spy、SQL Profiler和IronTrack SQL这三个工具,帮助你理解和掌握数据库监控与性能分析的方法。 首先,P6Spy是一个开源的Java库,它允许开发者在不修改应用程序代码的情况下,对数据库访问进行透明...

    Tomcat6.x + P6spy + SqlProfiler集成

    P6spy和SqlProfiler则是两个用于数据库性能监控和分析的工具。这篇内容将详细解释如何将这三者集成,以提升对数据库操作的监控效率。 【P6spy】 P6spy是一个开源的数据库监控工具,它能够拦截并记录应用程序与...

Global site tag (gtag.js) - Google Analytics