P6Spy + SQLProfiler 数据库访问调优

 

 

一、主要用途:


     采用对应用系统无侵入的方式,截获并记录应用系统访问数据库的所有记录,并进行初步分析后,得出对数据库索引的建立建议。

 

二、配置和使用步骤:

1、配置待测试应用系统

            添加P6Spy.jar,并修改应用的数据库驱动为“com.p6spy.engine.spy.P6SpyDriver” 。

2、配置P6Spy

            将spy.properties放在应用的classes目录下,然后将原来的JDBC驱动类配置到P6spy的配置文件spy.properties中的realdriver项就可以了。注意尽量不要修改其他配置,尤其是其中的logger配置。

3、启动SQLProfiler
     SQLProfile是一个独立的应用程序,启动方式为在sqlprofiler.jar所在目录中执行命令行:java –jar sqlprofiler.jar命令。

4、执行测试:
     然后启动应用,或者在执行应用需要监控的操作之前启动SQLProfiler也可。可以根据实际情况灵活使用。


至此,直接操作应用和SQLProfiler界面进行监控、分析即可得到。

 

三、附录: P6Spy + SQLProfiler项目绍

1、P6spy

    P6spy是一个基于Java的开源的项目,它所能实现的功能就是将应用系统访问数据库的情况记录下来,它所记录的数据包括发送的实际语句、预编译语句、语句执行的时间、执行语句消耗时间、执行语句的数据库连接编号等。

其格式为:

1124430077712|266|1|statement||select count(*) as nodeTotalNum from wr_Activity where procinstid= ?| select count(*) as nodeTotalNum from wr_Activity where procinstid= 1

表示在2005.08.19 01:41:17.712时编号为1statement向数据库发送了“select count(*) as nodeTotalNum from wr_Activity where procinstid= 1SQL请求,它的与编译语句为“select count(*) as nodeTotalNum from wr_Activity where procinstid= ?”,该语句在数据库中的执行时间为266毫秒。

    P6spy的优点就是不侵入应用系统,而且非常容易配置。 P6spy官方网站http://www.p6spy.com/documentation/index.htm

 

2、SQLProfiler

 

从上面的P6spy的介绍中我们可以看到,P6spy生成的记录是一个被格式化后的字符串,阅读起来比较困难,更不利于分析。SQLProfiler是一个基于Java的开源项目(已经中止),它能够将P6spy记录的日志通过一个界面来显示出来。

  

    SQLProfiler是一个单独运行的Java应用程序,它和P6spy是通过Java socket来进行通讯的。SQLProfiler运行后启动一个服务并不断的监听指定端口,当P6spy需要记录日志时就会通过socket连接到SQLProfiler发送日志信息。

  

    SQLProfiler不仅仅使P6spy记录文件易于阅读,它还对数据库执行过的语句进行分类和统计,统计出这些SQL语句的执行次数、总执行时间以及这类语句在所有的数据库语句执行时间中所占用的比例。另外对一些条件查询和更新语句还分析出该语句涉及到数据库表的那些字段(便于建立索引)并能自动生成创建数据库索引语句。

 

     

 

    另外:Sqlprofiler还提供了简单的分析功能,它能够通过折线图的形式直观的表示发生的语句数量与时间的关系、向数据发送数据量于时间关系以及数据库输出数据量与实践的关系。

 

SQL性能监控工具 P6SpySQL Profiler、IronStack SQL简介 在进行SQL化时,很重要的一点就是要看到底层执行的具体SQL,虽然可以通过打印日志的方式获取具体的SQLSQL的执行效率,但是这样做很不方便,尤其在是使用Hibernate作为持久层时,大量的占位符让人很是头痛 P6Spy P6Spy是一款开源的SQL监控工具,可以记录所有数据库操作及其消耗的时间 下载地址:http://sourceforge.net/projects/p6spy/fi... 阅读详情

相关推荐

P6Spy结合SQL Profiler配置

P6Spy结合SQL Profiler配置p6spy是针对数据库访问的动态监测框架,经长时间的发展已经非常成熟,p6spy模拟了一个标准的JDBC Driver,代理了真正的底层JDBC驱动。也就是说,我们只要把系统中所用的jdbc驱动配置成p6spy 驱动,把p6spy配置中的realdriver配置为我们实际使用的JDBC Driver,就可以使用他的性能监测功能了。Sqlprofiler

黄瓜和土豆的专栏 1423

P6SPY结合SQL Profile进行数据库

使用p6spy进行数据库操作执行时间的记录极大的方便了数据库程序的,结合SQL Profile使用,可以非常直观的看到sql语句的耗时等,使用方法非常简单, 下载p6spysql profile两个项目文件,解压, 将p6spy.jar放到项目的class path中 将spy.properties放到项目的class目录下,若在Eclipse中开发,可以放到src目录下 修改spy.properties文件,将realdriver=com.ibm.db2.jcc.DB2Drive

幸福的流浪者专栏 1612

SQL Profiler + P6Spy 完全配置手册

     以前在项目中使用iBatis,最痛苦的莫过于看到的sql为PreparedStatment输出的一串串"?"的东东。当时也没多想,认为自己写的pstmt就是这么个模样,难不成人家还会自动照顾到你?   这几天才“忽然”发现P6Spy这么个好东西,拿来一试,果真不错。   一般使用步骤,言简意赅吧:  1、下载:    p6spy: http://www.p6spy.c

IT进行时的专栏 1788

p6spysqlprofiler来进行jdbc sql日志记录和分析

http://blog.donews.com/lizongbo/archive/2005/05/26/399506.aspx1.相关工具下载:p6spy:   http://heanet.dl.sourceforge.net/sourceforge/p6spy/p6spy-install.ziphttp://www.p6spy.com/download.html辅助日志分析工具:

51sky的专栏 2480

p6spy+sqlprofiler

最近在一个基于J2ee项目中发现许多查询功能效率非常差,于是准备对这些查询进行化。上网转了一圈发现 p6spy+sqlprofiler组合能到达我的要求,于是下来实验了下。将安装过程记录下来和大家分享一、资源下载下载 P6Spy 软件包。 下载 SQL Profiler 软件包。注:虽然P6Spy是一个独立的安装包但是其生成的日志非常难看,如果直接看没有什实用价值。还好开源社会里

胖公猴(关注行业趋势,开发管理,开发工艺和开发流程,系统架构) 1554

p6spy+sqlprofiler使用

二、配置P6SpySQL Profiler 1、解压P6Spy将下面的p6spy.jar 拷贝到项目的classpath(如果是web项目则拷贝到/WEB-INF/lib 下面) 2、解压SQL Profiler 将其中的spy.properties拷贝到calsspath(如果是web项目则拷贝到/WEB-INF/classes 下面。注意:一定要从SQL Profiler 文件夹下面拷贝

yangyan19870319的专栏 1608

使用p6spysqlprofiler查看执行sql

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

Knowing something of everything and everything of something. 345

P6spy + sqlprofiler -持久化动态监测框架

p6spy ,是针对数据库访问操作的动态监测框架 执行的次数、频率、耗时的分析统计; 可对占位符中的 ? ,输出实际的参数值; p6spy的日志文件:spy.log,也可以通过spy.properties进行指定; 为开源项目,项目首页:http://www.p6spy.com。 基本使用方法: 1、主页下载p6spy-install,zip ,解压缩得到 p6spy.jar、sp

984

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

  weblogic 10 配置p6spy 1.http://www.p6spy.com/download.html,下载zip包 2.解压出p6spy.jar spy.properties两个文件 3.将p6spy.jar 放到BEA_HOME\user_projects\domains\mydomain\console-ext目录下; 4.将spy.properties放到BEA...

cometzb的博客 592

Hibernate 配置p6spy 显示完整sql 语句

1、下载p6spyp6spy:   http://heanet.dl.sourceforge.net/sourceforge/p6spy/p6spy-install.zip   a.解压p6spy-install.zip,把p6spy.jar拷贝到lib目录下和spy.properties放到src目录下 b.修改原有的JDBC Driver为:com.p6spy.engine.spy...

iteye_10076的博客 316

SSH中集成P6SPY,irontrack sql,sqlprofiler

http://blog.csdn.net/blackwingzhong/article/details/3858356 开始进行配置的时候,主要是参考了俞黎敏的文章《监控和剖析数据库操作 -- P6SpySQL Profiler、IronTrack SQL 使用简介》和《为struts+spring+hibernate增加显示数据库操作语句功能》。   首先,把P6SPY

jgwei的专栏 2212

提升基于JDBC的应用程序访问数据库的效率

一般来说,我们的JavaEE - JDBC企业应用程序的主要瓶颈之一就是在访问数据库,而数据库的瓶颈又主要在海量数据的查询上。如何解决这个问题?最简单的方法就是为数据库表建立精确的索引。如何做到有效的建立索引?不妨利用P6Spy(http://www.p6spy.com/)及SQL Profiler(http://www.jahia.net/jahia/page597.html)软件包针对应用

碧荷故乡_胡奇的专栏 2137

监控和剖析数据库操作 -- P6SpySQL Profiler、IronTrack SQL 使用简介

监控和剖析数据库操作 -- P6SpySQL Profiler、IronTrack SQL 使用简介文档选项document.write(打印本页);//-->打印本页document.write(将此页作为电子邮件发送);//--> 将此页作为电子邮件发送未显示需要 JavaScript

我的2007 1908

Spring+Hibernate集成p6spysqlprofiler

1、下载p6spysqlprofiler 2、拷贝p6spy.jarsqlprofiler.jar到WEB-INF/lib下 3、拷贝spy.properies到WEB-INF/classes下 4、编辑spy.properies中JDBC驱动为实际的JDBC驱动 5、注意先启动java -jar sqlprofiler.jar,然后启动web服务器 p6spy与spring集成...

白首穷经通秘义 333

jdbc连接mysql数据库效率_提升基于JDBC的应用程序访问数据库的效率

一般来说,我们的JavaEE - JDBC企业应用程序的主要瓶颈之一就是在访问数据库,而数据库的瓶颈又主要在海量数据的查询上。如何解决这个问题?最简单的方法就是为数据库表建立精确的索引。如何做到有效的建立索引?不妨利用P6Spy(http://www.p6spy.com/)及SQL Profiler(http://www.jahia.net/jahia/page597.html)软件包针对应用程序...

weixin_30977485的博客 298

[请教] 如何将P6spy,sqlprofiler 结合到Spring+Hibernate中

applicationContext.xml                            spy.propertiesmodule.log=com.p6spy.engine.logging.P6LogFactoryrealdriver=oracle.jdbc.driver.OracleDriverderegisterdrivers=truefilter=falseautoflush=

darkangel07的专栏 887
上一篇: 这几天 Oacle 调优的小结
下一篇: JBI、SCA 简述及对比
haitan
博客等级 码龄20年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值