`
jianchen
  • 浏览: 340507 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用p6spy和sqlprofiler查看执行sql

阅读更多

在公司使用ibaits做持久层存储。虽然ibatis是半自动的,可以编写sql,但是跟一大堆的xml放在一起看起来很不直观。之前虽然可以配置log4j可以打印执行的sql,但是输出的只是预编译的,其中充斥着?,传入的参数不能能直观的检查。在测试的时候往往想查看执行的sql到底是什么,这样对于定位错误非常有用。在网上找到两个工具包来解决这个问题:p6spysql_profiler

访问链接如下:

P6spy: http://www.p6spy.com/

Sqlprofiler:http://www.jahia.org/jahia/page377.html(打不开,难道要CROSS WALL--shit,敏感词汇)

大致原理sqlprofiler其主要作用就是对数据库进行拦截监控,P6Spy 就是一个代理它只做了一层对 JDBC 驱动的拦截,然后转发出去。它用log4j来记录操作日志。

下载p6spy-install.zip解压缩后的目录文件如下图:
       

使用方法:

目前p6spy的版本为1.3,在项目中增加依赖:

    <dependency>

                <groupId>p6spy</groupId>

                <artifactId>p6spy</artifactId>

                <version>1.3</version>

            </dependency>

目录中有一个spy.properties配置文件,将其放置到classpath下,该文件详细的配置了p6spy]的运行参数。前面提到p6spy的代理机制,所以我们需要使用它提供的驱动(其他的数据库连接URL什么的无需修改)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" >

        <property name="driverClassName">

            <value>com.p6spy.engine.spy.P6SpyDriver</value>

        </property>

        <property name="url">XXX </property>

        <property name="username">XXX </property>

        <property name="password">XXX</property>

    </bean>

spy.properties文件中配置我们实际使用的数据库驱动:

# oracle driver

# realdriver=oracle.jdbc.driver.OracleDriver

# mysql Connector/J driver

# realdriver=com.mysql.jdbc.Driver

# informix driver

# realdriver=com.informix.jdbc.IfxDriver

# ibm db2 driver

# realdriver=COM.ibm.db2.jdbc.net.DB2Driver

# the mysql open source driver

#realdriver=org.gjt.mm.mysql.Driver

其中还有一个logfile属性可以配置日志文件输出的位置。

通过运行单元测试,的确在相应目录下生成了sql日志,但查看后发现该日志的可读性很差。所以使用sqlprofiler图形界面查看。

下载下来的sqlprofiler-0.3-bin的目录结构如图:


   
  

我们使用sqlprofilerGUI控制介面,说白了就是一个监听器,在你通过p6spy进行数据库操作时,他就会很清晰地跟踪并列出你的操作,比单单查看那个恶心的spy.log来得舒服!既然基于p6syp当然也要用到p6syp.jar这个包咯,只是必须使用我们下载到的sqlprofiler.zip中的spy.properties来替换原来的项目中的那个文件,因为这个文件是定制过的,所谓的监听器也是靠这个文件才起作用的。同样的需要配置相关参数,修改realDriverlogfile的配置。

运行sqlprofiler.jar并执行测试,可以看到图形界面效果如下:



 


 

  • 大小: 15.8 KB
  • 大小: 6 KB
  • 大小: 153.7 KB
分享到:
评论

相关推荐

    P6spy 和 SqlProfiler 打印JDBC真实SQL

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

    p6spy_sqlprofiler-0.3-bin.zip

    在使用P6Spy和SQLProfiler时,首先需要将`p6spy.jar`和`sqlprofiler.jar`添加到项目类路径中。`p6spy-install.zip`包含了一些额外的安装和配置指南,可能包括了如何在不同的数据库驱动中配置P6Spy的说明。`README....

    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集成

    与P6spy不同,SqlProfiler通常需要与数据库管理系统的客户端一起使用,它可以实时监控SQL执行,包括查询时间、CPU使用、锁定和等待事件等。通过这种方式,开发者可以直观地看到哪些SQL语句可能导致性能问题。 **...

    weblogic server 11g +p6spy +sql profiler 配置

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

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

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

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

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

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

    通过在WebLogic中配置P6Spy并使用SQLProfiler,我们可以获取详细的SQL执行信息,从而优化数据库性能。这个过程涉及到对WebLogic数据源的配置、P6Spy代理驱动的使用以及`spy.properties`的定制。理解这些知识点对于...

    sqlprofiler+p6spy+配制

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

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

    本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...

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

    p6spy 是一个开源的 Java 框架,它的主要功能是在不修改代码的情况下,监控和记录 Java 应用程序中执行的所有 SQL 语句。这个工具对于开发者来说非常有用,因为它可以帮助定位性能瓶颈,特别是在使用 ORM(对象关系...

    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来观察Java程序中执行的所有SQL语句[整理].pdf

    【p6spy简介】 p6spy是一个开源的Java库,设计用于监视和分析应用程序中执行的SQL语句。...后续篇章将更深入地探讨p6spy的定制以及与其他性能监控工具的配合使用,帮助开发者更有效地管理和优化SQL执行。

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

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

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

    除了SQL Profiler之外,为了更方便地查看和分析记录的日志,还可以配合使用P6spy这样的工具。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`两个关键的Jar包放置于ClassPath中。如果是Web应用程序,则应将其放置在`E:\bea\weblogic81\server\ext`目录下,并确保以下环境变量被正确设置: ```plaintext Set CLASSPATH=%...

    web开发调试配置详解

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

Global site tag (gtag.js) - Google Analytics