`

P6Spy & SQL Profiler & IronTrack SQL

    博客分类:
  • Java
阅读更多
“Nearly 80 to 85 percent of database performance problems arise from the application database's design or the application's own code. Good transaction throughput requires an application designed from the database up, with performance and scalability in mind.”
----DB2 Magazine


P6Spy & SQL Profiler & IronTrack SQL

P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。
通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。

一、P6Spy的安装与使用
1、从 http://www.p6spy.com/ 下载P6Spy的文件包,也可以下载它的源文件包来研究;
2、把P6Spy的jar包p6spy.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、运行你的应用程序或Web应用程序,可以在spy.log里看到监测到的sql详细记录信息了。
7、驱动程序加载先后的问题解决
  如果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,重新运行即可。

二、结合SQL Profiler进行图形化监控与使用
1、从 http://www.jahia.net/ 下载SQL Profiler的文件包进行安装;
2、把p6spy.jar及sqlprofiler.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、注意要先运行 java -jar sqlprofiler.jar 来启动SQL Profiler,并成功看到启动后界面;
7、然后再启动你的应用程序或服务器,并开始进行正常的系统请求处理操作;
8、这样可以在SQL Profiler图形化的界面上看到结果并进行分析了。
并且可以通过保存按钮导出数据库优化建议的索引脚本

三、结合IronTrack SQL进行图形化监控与使用
1、从 http://www.irongrid.com/ironeyesql 下载IronTrack SQL的文件包进行安装;
2、把irontracksql.jar、p6spy.jar、log4j-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 图形化的界面上看到结果并进行分析了。
分享到:
评论
18 楼 lsy 2007-06-22  
收藏,收藏
17 楼 mingisme 2007-05-30  
好文章
16 楼 fallingstone 2007-04-25  
spy.properties可以放在bin那个目录下。你先用默认的输出到log文件的那个试试,看看spy.properties起不起作用。
15 楼 eyejava 2007-03-13  
YuLimin 写道
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver'

你用的是DBCP的连接池?你查一下我上传的附带的文档吧。

搜遍这个文档,没有dbcp的字眼..

上次轻易把p6spy安装好了,这次在junit中很正常,但是tomcat就是无法加载.... 貌似是spy.properties没加载.
junit测试用的dataSource 也是dbcp那个.

被折腾的心力交瘁..

14 楼 the_e 2007-01-29  
郁闷了!我配置了p6spy和sqlprofiler,但看不到执行的sql语句,是怎么回事呢?我单独用p6spy也是只产生了一个spy.log文件,执行的时候也没有sql语句呀!是怎么回事呢!请各位大大帮忙解释下呀!
13 楼 libinbin 2006-12-21  
yejienihao 写道
请问我在做第三步“结合IronTrack SQL进行图形化监控与使用”时,为什么执行了java -jar irontracksql.jar,出现一下错误:Exception in thread "main" java.lang.NoClassDefFoundError: com/incors/plaf/kunststoff/KunststoffLookAndFeel

另外第六步:设置监听端口号monitorport=2000,是在spy.properties文件里面添加吗?
谢谢



出那个错误,你可以用java ide 导入irontracksql.jar 和其他相关的包,运行com.irongrid.ibeam.ui.swing.Console 的 main 方法

在spy.properties文件里面添加
module.ibeam=com.irongrid.ibeam.server.IBeamFactory
monitorport=2000
12 楼 gao277 2006-11-16  
p6spy.jar用过一段时间,主要用来监控sql,但是发现里面bug不少,自己后来好好改了一把。
11 楼 yejienihao 2006-11-15  
请问我在做第三步“结合IronTrack SQL进行图形化监控与使用”时,为什么执行了java -jar irontracksql.jar,出现一下错误:Exception in thread "main" java.lang.NoClassDefFoundError: com/incors/plaf/kunststoff/KunststoffLookAndFeel

另外第六步:设置监听端口号monitorport=2000,是在spy.properties文件里面添加吗?
谢谢

10 楼 hasi 2006-10-30  
很有用,希望有更多的人看到
9 楼 YuLimin 2006-10-30  
nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver'

你用的是DBCP的连接池?你查一下我上传的附带的文档吧。
8 楼 小贾 2006-10-26  
楼主:
    我按照你说的方法,在JUnit的用例测试中没有问题;但是在tomcat服务器中测试时报找不到正确的驱动的错误,我数据库用的mysql。
具体错误如下:
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver' for connect URL 'jdbc:mysql://localhost:3306/myexam?useUnicode=true&characterEncoding=utf-8'; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver' for connect URL 'jdbc:mysql://localhost:3306/myexam?useUnicode=true&characterEncoding=utf-8'
	org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:97)
	org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:258)
	org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
	org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:411)
	org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371)
	org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:844)
	org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:836)
	exam.ssh.dao.GoodsDAO.findTotal(GoodsDAO.java:29)
	exam.ssh.serverimp.GoodsServerIMP.getGoods(GoodsServerIMP.java:42)
	exam.ssh.webapp.action.GoodsAction.showeAllForward(GoodsAction.java:73)
	exam.ssh.webapp.action.GoodsAction.execute(GoodsAction.java:53)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)




楼主给我找找原因吧!谢谢!
7 楼 YuLimin 2006-10-25  
IronTrackSQL
6 楼 YuLimin 2006-10-25  
MarkDong 写道
大哥啊,你哪转的帖子啊,irongrid.com早就不能访问了,我也一直想找到irongrid的几个开源工具,如果你有可以发给我吗?谢谢了


1、这是我自己参考doc文档而写的贴子,IronGrid.com的确在我整理这个贴子的时候访问不了了。

2、如果有需要,我可以把这些所需要的文件打包放上来。

3、其它的几个开源工具也是不错的,可惜现在比较难找了。
5 楼 IvanLi 2006-10-23  
MarkDong 写道
大哥啊,你哪转的帖子啊,irongrid.com早就不能访问了,我也一直想找到irongrid的几个开源工具,如果你有可以发给我吗?谢谢了

irongrid这个要收钱的
4 楼 sorphi 2006-10-23  
使用数据库系统本身的统计功能是否更加简单直接呢
3 楼 MarkDong 2006-10-23  
大哥啊,你哪转的帖子啊,irongrid.com早就不能访问了,我也一直想找到irongrid的几个开源工具,如果你有可以发给我吗?谢谢了
2 楼 Tin 2006-10-23  
以前用SQL Profiler使用的是Log4j的SocketAppender,现在好像配置简单了
Profiler适合进行语句和数据填充的正确性跟踪。IronTrack SQL比较适合寻找瓶颈语句。回去钻研一下,看看是否如此。
1 楼 小贾 2006-10-21  
不错啊!整下来试试!

相关推荐

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

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

    p6spy_sqlprofiler-0.3-bin.zip

    《P6Spy与SQLProfiler:全面监控SQL性能的利器》 在数据库管理中,了解SQL语句的执行情况是至关重要的。为了优化数据库性能,我们需要深入理解SQL查询的行为,包括执行时间、资源消耗等。这正是P6Spy和SQLProfiler...

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    这就引入了两个强大的工具——P6Spy和SqlProfiler,它们专门用于打印和分析JDBC执行的真实SQL。 P6Spy是一个开源的Java库,设计用于监控应用与数据库之间的通信。它通过拦截JDBC调用来捕获SQL语句,并将这些信息...

    p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用

    p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用 p6spy和sqlProfiler的配合使用让你的hibernate的show_sql更好用

    p6spy_sqlprofiler

    专门用来监控hibernate的sql输出,进行调试应用程序的工具,找了好久才找到,里面有个配置文件,记住realdriver是你的驱动,而在hibernate设置的驱动是这个驱动代理,p6spy的驱动,相当于在hibernate和数据库之间放...

    Tomcat6.x + P6spy + SqlProfiler集成

    【标题】:“Tomcat6.x + P6spy + SqlProfiler集成” 在Java Web开发中,Tomcat是一款广泛应用的开源Web服务器和应用服务器,主要用于运行Servlet和JSP应用。P6spy和SqlProfiler则是两个用于数据库性能监控和分析的...

    weblogic server 11g +p6spy +sql profiler 配置

    在提供的文件列表中,`sqlprofiler.jar`是P6Spy的核心库,包含实现监控功能的类和方法。`spy.properties`是P6Spy的配置文件,用于设置各种监控参数。 2. **配置spy.properties**:打开`spy.properties`文件,你需要...

    利用P6SPY +SQL Profiler调试、记录、统计web app对数据库的操作

    利用P6SPY +SQL Profiler调试、记录、统计web app对数据库的操作, 可以查看到PreparedStatment的执行最终的SQL语句。 有详细的操作说明 下面的这个是集成的完整版。。太大了就不上传了。自己下吧 jahia_v6_...

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

    **P6Spy与WebLogic配置及SQLProfiler监控详解** P6Spy是一款开源的数据库监控工具,主要用于记录和分析应用程序对数据库的所有SQL操作。在Java应用环境中,如WebLogic服务器上,P6Spy可以帮助开发者和DBA监控SQL...

    sqlprofiler+p6spy+配制

    `SQL Profiler`和`P6Spy`就是两个用于此目的的工具。它们可以帮助开发者识别性能瓶颈,理解数据库操作的效率,并进行必要的优化。现在我们来详细探讨这两个工具的配置及其相关知识。 首先,`SQL Profiler`是微软SQL...

    sqlprofiler.jar

    2、把p6spy.jar及sqlprofiler.jar放到WEB-INF/lib目录下,将SQL Profiler自带的spy.properties覆盖原来的classes目录下文件 3、修改 原有 JDBC Driver为:com.p6spy.engine.spy.P6SpyDriver其它的都不用更改。 4、...

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

    在IT行业中,数据库操作是应用程序的核心部分,而监控和优化SQL语句的执行效率是数据库管理的...在实际工作中,结合其他数据库监控工具(如MySQL的`EXPLAIN`命令、SQLProfiler等),能更全面地提升数据库的运行效率。

    用 p6spy 来观察 Java 程序中执行的所有 SQL 语句.docx

    【p6spy 简介】 p6spy 是一个开源的 Java 框架,它的主要...在后续的篇幅中,可能会详细介绍如何定制 p6spy 以满足特定的日志输出需求,以及如何与 SQL Profiler 或 IronTrackSQL 集成,实现更强大的 SQL 监控功能。

    Mysql课件教程 辅助日志分析工具SQLProfiler DBMonster的安装和配置 DBMonster命令示例-压数据

    **JDBC SQL日志记录** 是数据库测试中不可或缺的一环,通过P6Spy和SQLProfiler,我们可以收集SQL执行日志,分析执行效率,优化SQL语句,进而提升整体系统的性能。这对于监控数据库健康状况,预防潜在问题,以及在...

    用p6spy来观察Java程序中执行的所有SQL语句[整理].pdf

    p6spy能够拦截并记录通过JDBC执行的所有SQL语句,包括PreparedStatement中的参数,使得SQL语句的分析和优化变得更加方便。 【SQL语句优化的重要性】 在企业级应用中,SQL语句的性能是决定整体系统效率的关键因素之...

    企业项目二次开发——JDBC SQL Profiler应用.pdf

    P6spy能够将SQL Profiler生成的日志以更加友好的格式展示出来,便于开发者阅读和分析。 综上所述,JDBC SQL Profiler在项目二次开发中的应用,不仅能够帮助开发者有效地监控和分析遗留系统的数据库操作,而且在缺乏...

    Weblogic,tomcat调试eclipse配置

    4. **必要的JAR文件**: 包括`p6spy.jar`, `sqlprofiler.jar`, `log4j.jar`等。 #### 三、配置步骤 接下来详细介绍具体的配置步骤。 ##### 第一步:下载并安装SQL Profiler - 访问官方网站或第三方资源网站下载SQL ...

    web开发调试配置详解

    - 将`p6spy.jar`及`sqlprofiler.jar`文件放置到相应的目录下。对于Web应用程序,这两个文件应该位于`E:\bea\weblogic81\server\ext`目录下。 - 设置`CLASSPATH`环境变量,包含所需的JAR文件路径: ```bat Set ...

    Web开发学会调试

    将`p6spy.jar`及`sqlprofiler.jar`两个关键的Jar包放置于ClassPath中。如果是Web应用程序,则应将其放置在`E:\bea\weblogic81\server\ext`目录下,并确保以下环境变量被正确设置: ```plaintext Set CLASSPATH=%...

Global site tag (gtag.js) - Google Analytics