原创 SQL语句对Java中ResultSet效率的影响收藏

新一篇: 使用面向对象技术解决商品打折问题(一) | 旧一篇: 使用oo设计聊天室

测试过程中发现一个方法执行的时间很长,于是开始对这段代码进行效率测试。代码很简单,是通过一个Select语句从两个表中把数据取出,数据量很小只有30几条,然后通过ResultSet.next()方法遍历这个结果,把数据写到一个Vector里面。

测试结果发现,两个表的索引已经全部建立,而且SQL执行的速度不慢,后来发现是遍历过程耗时比较长。而造成这个耗时较长的原因在于SQL里面是用ORDER BY,而ORDER BY对ResultSet的这个影响仅仅在多个表关联之后才会发生,如果只是从一个表中选出数据则不会造成效率上的影响。

实践匆忙没有数据支持,有时间后专门写一段测试代码得到更有依据的数据。

数据库SQL Serve2000。

版权所有:idilent 网站转载请注明作者 其他转载方式请与作者联系(idilent@yahoo.com.cn)。

 

发表于 @ 2004年07月14日 20:42:00|评论(loading...)|编辑

新一篇: 使用面向对象技术解决商品打折问题(一) | 旧一篇: 使用oo设计聊天室

评论

#dulei 发表于2005-04-15 15:00:00  IP: 219.144.188.*
我的问题是从两个表把数据取出,数据量很小,然后通过ResultSet.next()方法遍历这个结果,保存到数据模型里
居然出错了
sql =
"select B_MarryInfo.ManId ,B_MarryInfo.WomanId,B_MarryInfo.CardZh, " +
" B_MarryInfo.ManCardYZh,B_MarryInfo.WomanCardYZh , B_PersonInfor.PersonBirth, " +
" B_PersonInfor.PersonName,B_PersonInfor.PersonSex from B_MarryInfo " +
"left join B_PersonInfor on (B_MarryInfo.ManId=B_PersonInfor.PersonId) " +
"or(B_MarryInfo.WomanId=B_PersonInfor.Personid) where Partid='" +
Partid + "' and PersonName like '%" + Name + "%'";
rs = stmt.executeQuery(sql);
while (rs.next()) {
mis.setWomanName(rs.getString("PersonName"));
mis.setWomanID(rs.getString("WomanId"));
mis.setWomanBirth(rs.getString("PersonBirth"));
mis.setWomanNation(rs.getString("PersonNation"));
mis.setWomanYZH(rs.getString("WomanCardYzh"));


#居然到这里来问问题 发表于2005-04-16 09:00:00  IP: 155.69.5.*
出了什么错?
发表评论  


登录
Csdn Blog version 3.1a
Copyright © idilent