一种特殊的数据库性能测试方法
上一篇 / 下一篇 2008-07-05 20:24:07 / 个人分类:其他
网上订购地址: http://www.china-pub.com/39876
Y3X5rik%XG0转载请注明:作者 及其 原文链接
V%PY:JAOo+E.dl0
第4章 应用实例讲解
4.1 一种特殊的数据库性能测试方法
很多同志在进行数据方面性能测试时束手无策,前面在第二章的第二节我们已经介绍了如何应用ODBC协议录制LoadRunner 8.0自身带的“Flights-ODBC_Access”例子。这里作者为您提供另一种简便的方法。问题描述:一个面向全国各个中小学的信息管理系统,随着系统被广泛的应用,访问人数的急剧增加、数据量也在飞速增长,如何为用户提供方便、快捷的应用呢?
nN1P Ia5b9X B7B G04.1.1数据库集群项目背景介绍
经过公司相关技术人员的讨论,决定采用数据库的集群技术来解决这些问题,将先前1台数据应用服务器扩展为3台。数据库为Mysql,如果您关心数据库的集群技术,请查阅相关资料,在这里不再赘述。实施的整体思路是这样。由于操作人员主要是进行数据的插入工作,在某一段时间内操作人员比较集中,数据量也较大,为了估计集群后会给性能带来多大的提升,我们分别部署了两套运行环境,一套是先前的单一数据库应用服务器环境,另外一个则是三台数据库服务器进行集群。为了记录用户并发插入大数据量系统的响应时间,在相关表中添加了日期时间型字段,记录插入首条和末尾记录的时间,这样,末尾时间减去首条记录插入时间,就是多用户并发插入大批量数据的执行时间了。实施过程如下:第一步,数据库管理员用Java写了一段代码:51Testing软件测试网%K,Fs'upCP8GqmiB
import java.sql.*; 51Testing软件测试网8O nG8W I1a+rs
public class testclus {
BOz ]y_i0public static void main(String[] args) {
Y7C:Yn[1_B0//如果传入参数个数不等于2,则给出提示信息"调用:java testclus ip:port recordcnt"
r!G;r I qO]M0if (args.length!=2)51Testing软件测试网5?B+Z6}s(Mo"ek?_
{51Testing软件测试网+Z2C,k/M@?e
System.out.println("调用:java testclus ip:port recordcnt");
W/M-iC7i\.O Xstn0return;
`cNp~0}51Testing软件测试网c-^i6G'Ee)^
//根据传入参数,动态建立连接字符串51Testing软件测试网M|0}_9X1cB&b]V
String URL = "jdbc:mysql://" +args[0]+"/testclus?characterEncoding=gbk";
Aa FXC Xb0int cnt = Integer.parseInt(args[1]);51Testing软件测试网l:iDef%s%^
try {
'O3oK$Yb0//声明并得到起始记录插入时间51Testing软件测试网F} RiX
long timeBegin;51Testing软件测试网IZ4y'}!qU[3TYO
java.util.Date d1 = new java.util.Date();51Testing软件测试网/d| E:S[7H)moi
//数据库连接初始化操作51Testing软件测试网vL4hwC_$m
Class.forName("com.mysql.jdbc.Driver").newInstance();
c+nH$P:N0Connection conn = DriverManager.getConnection(URL,"root","admin");
|n oz'? ~0//循环插入记录51Testing软件测试网:@ T5XrDu
PreparedStatement pstmt = conn.prepareStatement("insert into test(cnt, timer)
c5]UG`{5I [2g0values (?, now())");51Testing软件测试网5o'T'Ah4~}0h
Statement s=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,51Testing软件测试网&~vBjY)P}%_o
ResultSet.CONCUR_READ_ONLY);