怎样提高java server与windows客户端之间数据传输速度?(100分)

Z

zhjwjan

Unregistered / Unconfirmed
GUEST, unregistred user!
windows客户端向java server发送查询请求,java server负责从oracle数据库读取数据,
然后再回传给客户端。但是当记录多的时候java server处理速度很慢,比如1000多条记录,
java sever里执行rs = stmt.executeQuery(sqlstr)后,执行一个空循环
while (rs.next()) {}
也要差不多20秒,(这是在我自己的机器上,如果在好的服务器应该会快点)
如果在循环里面把记录写尽一个outputstream,然后再发给客户端就需要更多时间了。
但要客户端等待20多秒是很无法忍受的。
请问有什么办法可以大幅度减少java server查询数据库到回传数据库给客户端这个过程所用时间?
 
用分页显示,一次只取出20或50条记录
 
后台先取完,放入数组,再把数组传到客户端
 
我现在分页显示的话等于要将全部程序重新写过,能不能不这样做?我看到有个oracle工具
叫做toad的,它虽然也是分段读取表里的数据,但当我要它取全部数据时,明显比我的空循环
快十几倍,不知道它是怎么可以那么快的,大家有没什么好的办法?
 
优化你的SQL语句吧,1000多条记录应该用不了20秒。
 
用CachedRowSet吧 它实际上是个javabean 它不用一直合数据库保持连接 比较快
 
1000多条记录绝对不可能用20秒。你的JDBC driver 或者取回的rs有问题。
 
我曾经有一个查询,1500条记录,遍历3次也只要3-5秒中。
还是因为这个查询太复杂的缘故。
如果是简单的查询,大概应该是不到一秒中。
 
多人接受答案了。
 
顶部