P6SPY监控数据库性能

P6SPY监控数据库性能

P6SPY通过对JDBC API的包装截获应用程序对数据库的访问,P6SPY提供了如下几个功能:

u u 记录SQL语句的执行时间戳。

u u 记录SQL语句类型

u u 记录SQL填入参数的和没有填入参数的SQL语句

u u 根据配置的时间控制SQL语句的执行时间,对超出时间的SQL语句输出到日志文        件中(该功能由P6Outage模块实现)


配置P6SPY

(1) 下载P6SPY

http://www.p6spy.com

(2) 将p6spy.jar、commons-logging.jar、log4j.jar复制到应用的lib目录下

(3) 将spy.properties复制到应用的classpath目录下

(4) 修改应用的JDBC连接,JDBC驱动类更改为P6Spy的驱动com.p6spy.engine.spy.P6SpyDriver。

(5) 修改spy.properties文件,增加实际的数据库驱动类和日志文件输出目录。

#设置实际使用的JDBC驱动类

realdriver = com.mysql.jdbc.Driver


#设置日志文件输出目录

logfile = spy.log


默认的P6Spy日志文件输出6个域,用”|”分隔。

第一个域为时间戳,其格式可以配置。

第二个域为执行时间。

第四个域为该记录类型,有info、commit、statement、resultset等。

第五个域为没有填入参数值的SQL语句。

第六个域为填入了参数值的SQL语句(最有价值)。

P6Spy日志查看工具

Jahia SQL Profiler: 一个统计SQL查询,以便了解在哪里创建索引才是最有效的。


配置SQL Profiler

(1) 下载SQL Profiler

http://www.jahia.org/jahia/Jahia/devzone/pid/377中下载SQL Profiler的压缩包。

(2) 解压,拷贝其中的spy.properties到项目中,覆盖原来的spy.properties文件,并且重新修改realdriver和logfile。

(3) 在DOS下进入解压后的SQL Profiler目录,运行命令 java –jar sqlprofiler.jar,将会弹出如图所示界面:



(注意按钮是灰色的,此时不可用,因为SQL Profiler一开始运行,它就处于运行状态),如果发生内存溢出的情况,则需为JVM增加内存容量,使用:java –Xmx256m –jar sqlprofiler.jar。


查看SQL Profiler

SQL Statement面板每一秒钟刷新一次,Details面板显示SQL语句的详细资料。当按下按钮后,Profile results栏中显示对SQL语句的分析结果,其中的Column列表是建议建立index(索引)的列名。如果为空,则表示没有必要建立索引。

点击”Logger”标签,可以查看P2Spy的运行日志,如图:




点击”Analysis”标签,可以查看数据库操作的统计信息,包括查询的次数、数据流量(数据量越大,CPU和IO资源消耗越大),如图:

你可能感兴趣的:(jvm,sql,mysql,log4j,jdbc)