P6Spy + SQLProfiler 数据库访问调优

系统 1490 0

 

 

一、主要用途:


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

 

二、配置和使用步骤:

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 时编号为 1 statement 向数据库发送了“ select count(*) as nodeTotalNum from wr_Activity where procinstid= 1 SQL 请求,它的与编译语句为“ 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 语句的执行次数、总执行时间以及这类语句在所有的数据库语句执行时间中所占用的比例。另外对一些条件查询和更新语句还分析出该语句涉及到数据库表的那些字段(便于建立索引)并能自动生成创建数据库索引语句。

 

      P6Spy + SQLProfiler 数据库访问调优

 

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

 

P6Spy + SQLProfiler 数据库访问调优


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论