一种特殊的数据库性能测试方法
脚本如下:4.1 一种特殊的数据库性能测试方法
很多同志在进行数据方面性能测试时束手无策,前面在第二章的第二节我们已经介绍了如何应用ODBC协议录制LoadRunner 8.0自身带的“Flights-ODBC_Access”例子。这里作者为您提供另一种简便的方法。问题描述:一个面向全国各个中小学的信息管理系统,随着系统被广泛的应用,访问人数的急剧增加、数据量也在飞速增长,如何为用户提供方便、快捷的应用呢?
4.1.1数据库集群项目背景介绍
经过公司相关技术人员的讨论,决定采用数据库的集群技术来解决这些问题,将先前1台数据应用服务器扩展为3台。数据库为Mysql,如果您关心数据库的集群技术,请查阅相关资料,在这里不再赘述。实施的整体思路是这样。由于操作人员主要是进行数据的插入工作,在某一段时间内操作人员比较集中,数据量也较大,为了估计集群后会给性能带来多大的提升,我们分别部署了两套运行环境,一套是先前的单一数据库应用服务器环境,另外一个则是三台数据库服务器进行集群。为了记录用户并发插入大数据量系统的响应时间,在相关表中添加了日期时间型字段,记录插入首条和末尾记录的时间,这样,末尾时间减去首条记录插入时间,就是多用户并发插入大批量数据的执行时间了。实施过程如下:第一步,数据库管理员用Java写了一段代码:
import java.sql.*;
public class testclus {
public static void main(String[] args) {
//如果传入参数个数不等于2,则给出提示信息"调用:java testclus ip:port recordcnt"
if (args.length!=2)
{
System.out.println("调用:java testclus ip:port recordcnt");
return;
}
//根据传入参数,动态建立连接字符串
String URL = "jdbc:mysql://" +args+"/testclus?characterEncoding=gbk";
int cnt = Integer.parseInt(args);
try {
//声明并得到起始记录插入时间
long timeBegin;
java.util.Date d1 = new java.util.Date();
//数据库连接初始化操作
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(URL,"root","admin");
//循环插入记录
PreparedStatement pstmt = conn.prepareStatement("insert into test(cnt, timer)
values (?, now())");
Statement s=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
timeBegin = d1.getTime();
for (int i=1; i<=cnt; i++)
{
pstmt.setInt(1, i);
pstmt.executeUpdate();
ResultSet rs=s.executeQuery("select count(*) from test");
}
conn.close();
//得到末尾记录和起始记录插入的时间差值并输出
java.util.Date d2 = new java.util.Date();
System.out.println(d2.getTime()-timeBegin+" 毫秒");
}
//异常处理部分
catch(ClassNotFoundException e) {
System.out.println("找不到驱动程序");
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
#include "web_api.h"
Action()
{
lr_rendezvous("in");
system("testclus 192.168.0.44:3306 1000");
return 0;
} 这个到底怎么用呢,还是不清楚 不错,学习一下,:) System.out.println("调用:java testclus ip:port recordcnt");
这个用法很清楚了。核心代码就是JDBC 原帖由 liangjz 于 2008-5-22 21:13 发表 http://bbs.51testing.com/images/common/back.gif
System.out.println("调用:java testclus ip:port recordcnt");
这个用法很清楚了。核心代码就是JDBC
呵呵,加上这句就更清楚了! 搞这方面的朋友地是不是少啊? 我是是没明白,能加楼主QQ交流一下么?我的QQ:532883334
最近在搞数据库压力测试。一直没有头绪。还往楼主赐教~~:) 我会加你的QQ,到时我们再聊! 原帖由 0341110113 于 2008-5-23 14:49 发表 http://bbs.51testing.com/images/common/back.gif
我是是没明白,能加楼主QQ交流一下么?我的QQ:532883334
最近在搞数据库压力测试。一直没有头绪。还往楼主赐教~~:)
加你好像没通过你的验证啊!
页:
[1]