`
Copperfield
  • 浏览: 260973 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
C407adc3-512e-3a03-a056-ce4607c3a3c0
java并发编程陷阱
浏览量:25211
社区版块
存档分类

p6spy-部署在系统中,输出sql语句

 
阅读更多

1、添加p6spy.jar。

2、将spy.properties放到src下,最后部署到类路径下。

3、修改database.properties中的数据库驱动,如:database.connection.driver=com.p6spy.engine.spy.P6SpyDriver

4、修改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

根据自己的数据库类型,解开注释,这里使用oracle。

5、修改sql日志的输出方式,第三个是输出到控制台,第四个是输出到文件。
#specifies the appender to use for logging
#appender=com.p6spy.engine.logging.appender.Log4jLogger
appender=com.p6spy.engine.logging.appender.StdoutLogger
#appender=com.p6spy.engine.logging.appender.FileLogger

6、如果指定将日志输出到文件,则需指定文件的目录。
# name of logfile to use, note Windows users should make sure to use forward slashes in their pathname (e:/test/spy.log) (used for file logger only)
logfile = d:/p6spy.log

为过滤眼花缭乱的结果集resultset,需对原有的jar进行改造,件中的jar已经将resultset过滤掉了。另外还要修改:

excludecategories=info,debug,result,batch,resultset

spy.properties中 参数说明:

 (1)       module.log的属性必须配置,如果不配置,P6SPY将不起任何作用,典型配置为:module.log=com.p6spy.engine.logging.P6LogFactory

(2)       realdriver表示真实的驱动,上面配置的com.p6spy.engine.spy.P6SpyDriver会最终调用真是的驱动程序执行SQL

Oracle数据库的配置为:

realdriver=oracle.jdbc.driver.OracleDriver

(3)       appender配置,一般分为三种

#appender=com.p6spy.engine.logging.appender.Log4jLogger

# appender=com.p6spy.engine.logging.appender.StdoutLogger

#appender=com.p6spy.engine.logging.appender.FileLogger

 

其中,appender=com.p6spy.engine.logging.appender.StdoutLogger表示将输出的SQL或者日志信息输出到Console窗口。

(4)       log4j.logger.p6spy一般需要将log4j的相关参数从默认的

log4j.logger.p6spy=info,STDOUT

修改为

log4j.logger.p6spy=warn,STDOUT

以减少p6spy信息的输出

(5)       可以将dateformat=修改为dateformat=hh:mm:ss,SSS有利用时间信息的查看。

(6)       尽量根据P6Spy的标准的示例的配置文件进行修改,不用随便删除配置信息。

 

打印语句如下:

0:44:10,303  INFO [AbstractPoolBackedDataSource] Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 120000, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 17f1841, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.p6spy.engine.spy.P6SpyDriver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 17f1841, idleConnectionTestPeriod -> 3600, initialPoolSize -> 3, jdbcUrl -> jdbc:oracle:thin:ccfsdata/ccfsdata123@10.25.18.26:1524:pcc, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 50, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, preferredTestQuery -> null, properties -> {}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 180, usesTraditionalReflectiveProxies -> false ]
|statement|SELECT categories_id, title, display_order, moderated FROM jforum_categories ORDER BY display_order
|statement|SELECT forum_id, forum_name, categories_id, forum_desc, forum_order, forum_topics, forum_last_post_id, moderated FROM jforum_forums ORDER BY forum_order ASC
|statement|SELECT COUNT(1) FROM jforum_posts WHERE forum_id = 1
|statement|SELECT config_name, config_value, config_id FROM jforum_config WHERE config_name = 'most.users.ever.online'
|statement|SELECT config_name, config_value, config_id FROM jforum_config WHERE config_name = 'most.users.ever.online.date'
|statement|SELECT * FROM ( SELECT user_id, username, ROW_NUMBER() OVER(ORDER BY user_regdate DESC) - 1 LINENUM FROM jforum_users ORDER BY user_regdate DESC ) WHERE LINENUM = 0
|statement|SELECT COUNT(1) as total_users FROM jforum_users
|statement|SELECT * FROM jforum_ranks ORDER BY rank_min
|statement|SELECT * FROM jforum_smilies ORDER BY smilie_id
|statement|SELECT * FROM jforum_banlist ORDER BY banlist_id
|commit|
10:44:14,274  INFO [ConfigLoader        ] Loading clickstream config from D:\software\apache-tomcat-5.5.20\webapps\jforum/WEB-INF/config/clickstream-jforum.xml
sessionCreated
|statement|SELECT u.*, (SELECT COUNT(1) FROM jforum_privmsgs pm WHERE pm.privmsgs_to_userid = u.user_id AND pm.privmsgs_type = 1) AS private_messages FROM jforum_users u WHERE u.user_id = 1
|statement|SELECT ug.group_id, g.group_name FROM jforum_user_groups ug, jforum_groups g WHERE ug.group_id = g.group_id AND ug.user_id = 1 ORDER BY g.group_id
|statement|SELECT r.name, '0' AS role_value FROM jforum_roles r WHERE r.group_id IN (1) UNION SELECT r.name, rv.role_value FROM jforum_roles r, jforum_role_values rv WHERE r.role_id = rv.role_id AND r.group_id IN (1) ORDER BY name
net.jforum.view.forum.ForumAction
templateName is------forums.list
|statement|SELECT COUNT(1) as total_messages FROM jforum_posts WHERE need_moderate = 0
输出模板-------template
|statement|SELECT post_time, p.topic_id, t.topic_replies, post_id, u.user_id, username FROM jforum_posts p, jforum_users u, jforum_topics t , jforum_forums f WHERE t.forum_id = f.forum_id AND t.topic_id = p.topic_id AND f.forum_last_post_id = t.topic_last_post_id AND t.topic_last_post_id = p.post_id AND p.forum_id = 1 AND p.user_id = u.user_id AND p.need_moderate = 0
|statement|SELECT t.*, p.user_id AS last_user_id, p.post_time, p.attach AS attach FROM jforum_topics t, jforum_posts p WHERE t.topic_id = 201 AND p.post_id = t.topic_last_post_id
|statement|SELECT user_id, username FROM jforum_users WHERE user_id IN (1,1)
|commit|

分享到:
评论

相关推荐

    p6spy-sql监控

    4. **配置数据库连接**:在应用程序的数据库连接URL中加入P6Spy的特定后缀,例如`jdbc:p6spy:mysql://localhost:3306/mydatabase`。 5. **启动应用**:重新启动应用,P6Spy即开始生效。 ### 四、日志分析与性能...

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

    8. 之后,P6Spy将在指定的日志文件(如`c:/spy.log`)中记录所有的数据库操作,包括完整的SQL语句和执行详情。 通过P6Spy,我们可以得到诸如SQL语句的原始格式、执行时间、异常信息等详细信息,这对于分析和优化...

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

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

    p6spy-3.7.0.zip

    1. **日志记录**:P6Spy 可以记录所有的SQL语句,包括执行时间、执行结果等,这对于识别性能瓶颈和优化SQL语句非常有用。 2. **性能监控**:通过分析日志,可以追踪SQL的执行时间,帮助找出慢查询,从而进行性能优化...

    p6spy精简版-跟踪sql工具

    首先,p6spy的核心功能是SQL日志记录,它能够捕获应用程序执行的所有SQL语句,并将其详细信息输出到日志文件中。这对于性能调优、故障排查以及审计都是非常有用的。在原版p6spy中,用户需要配置`spy.properties`文件...

    p6spy-install.jar

    与hibernate配合使用实现sql语句参数的打印及其他的一些性能方面的监控,有利于优化sql代码,用法上网随便一搜很多的

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

    在IT行业中,数据库操作是应用程序的核心部分,而监控和优化SQL语句的执行效率是数据库管理的关键任务之一。P6Spy是一款开源的Java工具,它允许开发者捕获和记录应用程序与数据库之间的交互,特别是SQL语句的执行。...

    p6spy.rar输出完整带参sql

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

    p6spy-install.zip

    在实际应用中,首先需要在`spy.properties`中指定数据库驱动和日志格式,然后在应用程序的数据库连接URL中加入P6Spy的特定前缀,例如`jdbc:p6spy:mysql://`。完成这些步骤后,启动应用,P6Spy就会开始记录所有SQL...

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

    记住,虽然p6spy是一个强大的工具,但过度依赖SQL日志可能会增加系统的开销,因此在生产环境中,应谨慎调整日志级别,只在必要时开启详细日志记录。同时,配合使用其他的数据库性能分析工具,如MySQL的`EXPLAIN`或第...

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

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

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

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

    数据插入监控 p6spy

    此外,P6Spy还提供了丰富的日志选项,可以输出SQL语句的执行计划,这对于优化查询性能非常有帮助。它还可以与其他工具结合使用,如Logstash、ELK Stack(Elasticsearch、Logstash、Kibana),进行实时的日志分析和...

    p6spy_sqlprofiler-0.3-bin.zip

    它的工作原理是在数据库连接驱动层插入一个代理,使得所有的SQL语句在执行前都会经过P6Spy的处理。通过配置文件`spy.properties`,我们可以定制日志格式和内容,以便分析数据库性能。 在P6Spy的基础上,SQLProfiler...

    p6spy dataSource 配置 监听真实sql语句

    p6spy dataSource 配置 监听真实sql语句

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

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

    P6spy 和 SqlProfiler 打印JDBC真实SQL

    对于P6Spy,我们可以在spys.properties中调整日志级别和输出格式,以满足不同需求。对于SqlProfiler,我们需要在工具界面中选择要监视的数据库服务器、数据库实例和事件。 一旦配置完成,运行应用程序,所有通过...

    sqlprofiler+p6spy+配制

    配置P6Spy需要在应用的JDBC连接字符串中插入P6Spy的驱动,并在配置文件中设置日志格式和级别。 以下是配置P6Spy的基本步骤: 1. 下载并添加P6Spy的jar文件到项目的类路径中。 2. 修改JDBC连接字符串,使其指向P6Spy...

    p6spy简介显示hibernate配置

    **P6Spy简介** P6Spy是一款开源的Java数据库监控工具,它允许开发者在不修改应用程序代码的情况下,透明地监控数据库活动。...在实际开发过程中,正确配置和使用P6Spy对于提高系统性能和排查问题具有重要意义。

    weblogic server 11g +p6spy +sql profiler 配置

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

Global site tag (gtag.js) - Google Analytics