论坛首页 入门技术论坛

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

浏览 1604 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-04-24  
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的性能关键在那里?如何才能提高?
以上是我的一些疑问 望了解的人告之


论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics