`

P6SPY打印insert语句不全?

 
阅读更多

很偶然的,发现在整合SpringSide3的Hibernate时,执行类似

 

entityDao.save(entity1);
entityDao.save(entity2);

 

 代码,P6SPY的抓取SQL,只记录了一条insert语句。

一度以为是我改造的P6SPY版本有问题,

今天再研究这个问题时,发现当日志级别为debug时,出现了AbstractBatch这个类,于是我怀疑,Hibernate在session提交时的dirty check阶段会只能判断一个entity的save情况,大于一次的就使用批量插入来加快效率。

但是P6SPY这个框架可能对jdbc的批量更新没有做完善,导致只记录了最后一次插入的sql。

最后使用jdbcTemplate.batchUpdate()方法证实了这个想法。

再次记录一下,也算解决了困扰多时的一个问题,虽然并不是非常重要。

要彻底解决的话,还要系统的看P6SPY的源代码,暂时没有这个精力。

 

另:话说P6SPY自从2005年发布了1.3版后就停止更新了,不过我很“神奇”的发现github上有一个叫P6SPY的项目,而作者就是patmoore,版本到了 2.0-SNAPSHOT 噢。

分享到:
评论

相关推荐

    P6SPY JDBC拦截打印sql语句 非常好的调试工具

    P6spy是一个JDBC Driver的包装工具,p6spy通过对JDBC Driver的封装以达到对SQL语句的监听和分析,以达到各种目的。 p6spy的安装步骤: 1. 下载p6spy的安装包 2. 把p6spy的jar包放到Classpath中,如果是WEB App...

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

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

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

    在开发和调试基于Hibernate的Java应用时,有时我们需要获取到SQL语句的完整形式,而不仅仅是Hibernate默认输出的参数化形式。在这种情况下,P6Spy是一个非常有用的工具。P6Spy是一个开源的JDBC代理库,它允许我们...

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

    4. **无需修改代码**:P6Spy 集成到应用中,不需要修改任何数据库连接代码,使得部署简单且无侵入性。 **P6Spy 配置步骤** 1. **下载P6Spy**:首先,你需要从官方或者其他可信来源下载P6Spy的JAR文件,如提供的`p6...

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

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

    p6spy java 使用

    一旦启用 P6Spy,每次应用程序执行 SQL 语句时,P6Spy 都会记录这些 SQL 的详细信息,包括执行前后的原始 SQL、执行参数、返回结果以及执行时间等,这对于性能调优和问题排查非常有用。 【排除ResultSet】 P6Spy ...

    p6spy-sql监控

    1. **SQL日志记录**:P6Spy可以捕获并记录所有执行的SQL语句,包括原始的SQL、执行时间、返回结果等,这对于追踪数据库操作和性能分析非常有用。 2. **日志格式自定义**:P6Spy允许用户通过配置文件定制日志输出...

    p6spy简介显示hibernate配置

    P6Spy是一款开源的Java数据库监控工具,它允许开发者在不修改应用程序代码的情况下,透明地监控数据库活动。P6Spy通过拦截并记录JDBC调用来获取数据库查询、更新和其他操作的详细信息,这对于性能优化、调试和审计...

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

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

    p6spy使用说明.doc

    P6Spy的工作原理是通过代理模式,拦截SQL语句并记录其执行情况,这有助于开发者进行性能优化和问题排查。 一、P6Spy简介 P6Spy是一个SQL日志记录器,它能够捕获并记录应用程序中的所有数据操作,包括插入、更新、...

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

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

    p6spy-3.7.0.zip

    P6Spy 是一个开源的数据库监视工具,它允许开发者在不修改应用程序代码的情况下,对数据库访问进行监听、记录和分析。P6Spy 的3.7.0版本为开发者提供了更强大的功能和改进,使得数据库性能调优变得更加便捷。 ### ...

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

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

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    总结来说,P6Spy和SqlProfiler是Java开发中不可或缺的数据库监控工具。它们能够帮助我们深入了解应用程序与数据库的交互,从而进行有效的性能优化和问题定位。在日常开发和维护过程中,正确使用这两个工具可以显著...

    p6spy 修改版,去掉resultset

    总的来说,这个修改版的P6Spy是一个适用于特定需求的数据库监控解决方案,它保留了基本的SQL语句跟踪功能,但不再记录查询结果,简化了日志内容。对于那些不需要`ResultSet`详细信息,但仍希望监控数据库操作的...

    sqlprofiler+p6spy+配制

    P6Spy不局限于特定的数据库,它可以与MySQL、Oracle、SQL Server等许多数据库配合使用。它的主要优势在于可以在不影响应用程序代码的情况下,提供数据库访问的日志,这对于诊断性能问题和调试SQL语句非常有用。配置...

    p6spy.rar输出完整带参sql

    标题中提到的“输出完整SQL”,意味着P6Spy可以捕获并记录应用程序发出的所有SQL语句,包括参数。这对于调试和性能分析非常有用,特别是当SQL语句是动态生成或者使用了预编译的PreparedStatement时。 5. **兼容性*...

    p6spy精简版-跟踪sql工具

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

    p6spy dataSource 配置 监听真实sql语句

    p6spy dataSource 配置 监听真实sql语句

    P6Spy的使用.txt

    P6Spy是一款开源的数据库监控工具,主要用于在应用程序与数据库之间进行拦截,从而记录和分析SQL语句及其执行时间等信息。通过P6Spy可以方便地了解应用程序对数据库的操作细节,帮助开发者优化SQL语句性能。 ##### ...

Global site tag (gtag.js) - Google Analytics