sqlprofilter性能测试工具
上一篇 /
下一篇 2014-05-30 15:10:34
/ 个人分类:性能测试
sqlprofilter性能测试工具
配置:
1、db.property里面,开启driveClass功能
2.spy.property里面,修改工具所在的ip:log4j.xxxxxxRemoteHost,重启程序。
SQL Profiler
SQL Profiler 是一个由 Jahia.org 提供的基于 P6Spy 引擎的快速剖析工具,用来统计 SQL 查询语句以便了解哪里是性能瓶颈,在哪里创建索引或者采取相应的办法才能提高效率,并且能根据 SQL 查询语句的情况帮你生成合适的索引脚本。
这个小工具可以实时地显示数据库查询的情况,通过集成的 SQL 解析器,在访问大多数表与列上面建立统计分析,并生成索引脚本。当然,其它的信息也会进行收集和显示,比如:单个数据库请求的时间、一类请求的时间以及所有请求的时间。因此,可以有效地通过视图的排序来检测数据的性能问题所在。这个工具对于大量的需要进行分析的请求是非常有用的,而不是人工一个个地去做分析。当你需要知道比如对相同的表和列进行访问但是采用不同的查询值时,这种分组的查询可以用建立在 ANTLR 上的 SQL 解析器进行分析。
使用步骤
首先,你的应用系统同样也应当是基于数据库的,然后你需要去获取 SQL Profiler 相关的文件(在 参考资源 中可以找到下载链接,您可以直接下载软件包)。下面介绍 SQL Profiler 的安装与使用的详细操作过程:
- 下载 SQL Profiler 的文件包进行安装;
- 把 p6spy.jar 及 sqlprofiler.jar 放到
CLASSPATH
中,如果是 Web 应用程序则放在 YourWebApp/WEB-INF/lib/
目录下; - 把 spy.properties 放到
CLASSPATH
目录下,如果是 Web 应用程序就放在 YourWebApp/WEB-INF/classess/
目录下,注意不是 lib/
目录; - 修改你应用系统中的数据库驱动名称为 P6Spy 的驱动程序名称
com.p6spy.engine.spy.P6SpyDriver
其它的全部使用默认值,暂时不用修改; - 打开 spy.properties 文件,把
realdriver
的值改为你的程序的数据库驱动名称; - 注意要先运行
java -jar sqlprofiler.jar
来启动 SQL Profiler,并成功看到启动界面; - 然后再启动你的应用程序或服务器,并开始进行正常的系统请求处理操作;
- 这样就可以在 SQL Profiler 图形化的界面上看到结果并进行分析了。
分析结果
经过一段时间的系统运行后,点击 Pause 按钮停止拦截,可以得到分析结果如下图:
图 2. SQL Profiler 的分析结果 Profiler 视图
接着,可以切换到 Loggers 视图,这是 Lgger 视图的信息:
图 3. SQL Profiler 的分析结果 Logger 视图
当然,也可以切换到 Analysis 视图,这是 Analysis 视图的分析结果信息:
图 4. SQL Profiler 的分析结果 Analysis 视图
在经过分析后,我们可以直接通过 SQLProfiler 提交的保存按钮,直接导出应当进行数据库优化的建议的索引脚本,通过查看索引脚本,我们可以看到创建索引的详细 SQL 脚本,这样,我们就可以非常方便地进行数据库调优了。
问题与解决
最后一个需要注意的问题就是需要先启动 SQLProfiler,然后再启动应用程序或者 Tomcat 等应用服务器。这是因为 SQLProfiler 默认使用的是 Log4j 的 SocketAppender,所以要先启动。否则,会因你的应用程序或应用服务器中的 Web 应用之类的因连接不到 Socket 的服务器(SQLProfiler 相当于 Socket 的服务器)而发生错误,可以通过 SQL Profiler 控制界面最下面的连接状态就可以知道是否有程序连接上来。
图 5. SQL Profiler 处于非连接状态
图 6. SQL Profiler 处于连接状态
收藏
举报
TAG: