jdbc运行的时间到底怎么会事 它的性能又如何提高

public ArrayList getUserInfo()
{
long methodstart = System.currentTimeMillis();
ArrayList<User> list = new ArrayList<User>();
Connection conn = null;
ResultSet rs = null;
Statement stmt = null;
User user= null;
String sql = "select * from t_user";
try {
long constart = System.currentTimeMillis();
conn = GetDbConnection.GetConnetion();
long conend = System.currentTimeMillis();
System.out.println("Connection time "+(conend-constart)+" ms");
stmt = conn.createStatement();
if (conn != null) {
rs = stmt.executeQuery(sql);
}
long resultstart = System.currentTimeMillis();
while (rs.next()) {
user= new User();
user.setUsername(rs.getString(1));
user.setPassword(rs.getString(2));
list.add(user);
}
stmt.close();
long resultend = System.currentTimeMillis();
System.out.println("getUserInfo ResultSet time "+(resultend-resultstart)+" ms");
}catch (Exception ex) {
System.out.println(ex.toString());
} finally {
try {
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
}
}
long methodend = System.currentTimeMillis();
System.out.println("getUserInfo Time "+(methodend-methodstart)+" ms");
return list;
}

以上是我简单的一个测试
主要测试
1.数据库连接时间
2.数据库执行时间
3.整个方法的时间(这种测试方法 我不能确定是否正确)
测试结果(10次左右) (数据库是局域网)
Connection time 360 ms (数据连接是用jdbc连接 用jndi测试过数据居然只要0ms,完全不明白为何差距如此大)
getUserInfo ResultSet time 16 ms
getUserInfo Time 4485 ms
一共返回39条记录
我这样测试了很多次 总觉的时间不合理
我认为 连接时间+执行时间 <= 整个方法的时间 (关闭连接的时间没有测试)
但 360+16 <4485 差距也太大了点 相减的4000ms到底在干什么?(主要不块不是很了解,希望有人帮我解答~!!!)

而且 一个数据操做 往往要调用另一个 数据操作 这将进行两次数据库连接 整个方法的时间更是大大的增长
如果都写个一个数据操作的话代码也太庞大了 (这块又如何解决???)

我这样的测试是不是合理(我也怀疑),如果不合理 告之我合理的方法
jdbc的性能关键在那里?如何才能提高?
以上是我的一些疑问 望了解的人告之
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值