Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 请问有没有关于JDBC实现异步查询的方法?
herong





发贴: 10
积分: 0
于 2006-02-26 14:01 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我现在有一个日志数据库,数据量非常庞大(大概一个小时有400万记录,平均一张数据表有1500万记录),如果使用同步的方法来查询,则用户可能要等很久才能看到查询结果。

我以前是用VB+ADO来做异步查询的,现在想切换到Java+JDBC,可是一直找不到相关的资料。我查到Statement接口下有个cancel()的函数可能和这个有点关系,可是还是不知道该怎么使用。

当然也不一定局限与异步查询,只要能比较快地取到查询结果(一部分也可以)就可以了。现在我用VB+ADO,基本上几秒之内就能返回一部分可以显示的记录,所以用户不会觉得慢。

如果这个问题解决不了,老板就肯定不会同意更换平台了。

希望各位大侠帮帮忙,先在此谢谢了!:)



作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
九佰



版主


发贴: 983
积分: 126
于 2006-02-26 21:56 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
只是检索数据,可以建视图和索引,如果有必要可以根据需要对一个表建立多个视图和索引,在查询的时候,增加检索的条件。
也可以考虑使用java调用oracle数据库管理系统的本身提供的数据处理功能,比如存储过程等,在返回java程序处理的时候,尽量保证数据集要小。




http://www.teamlet.org

海纳百川,有容乃大
壁立千仞,无欲则刚
智者不惑,勇者无惧
止戈为武,仁者无敌
作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
herong





发贴: 10
积分: 0
于 2006-02-26 22:53 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
谢谢:)

实际应用的基本情况是:用户除了指定时间范围外,可能不会再指定其他条件,这样即使只指定1分钟的时间范围,查询记录也将有接近30万;如果再指定一个条件,查询记录大概有1000条。
上面的情况已经很乐观了,因为如果用户不熟悉的话,很可能指定一个小时以上的时间范围,那样查询记录将有400万条:(

我用的是SQL Server 2000,也尝试过建索引,但是没有显著效果。很奇怪,偶尔会很快,但大多数时候都没什么改进。可能和我使用的是MSDE有关,不过客户也有很多是只用MSDE的……



作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
zcjl

涅槃



发贴: 537
积分: 65
于 2006-02-27 22:59 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
难道你们的查询不用分页的么?每次只返回一页(或x页)的数据,然后保留查询条件,通过下页(或下x页)的方式查询更多数据


作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
herong





发贴: 10
积分: 0
于 2006-02-28 23:26 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
谢谢!分页的话是不是要对表建索引?但是现在正在存数据的表不能建索引,因为那样往里面添加数据会比较慢,以前就是因为这个原因才把索引去掉了的。


作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
zcjl

涅槃



发贴: 537
积分: 65
于 2006-02-28 23:34 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
索引对于分页查询来说不是必须的,只要能以某个字段(通常是流水号)进行排序就可以。当然,正确的索引会加快查询速度


作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:zcjl]
yufsih123





发贴: 3
积分: 0
于 2006-03-01 00:11 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我想问下你用VB+ADO的时间是怎么做异步查询的?


作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:yufsih123]
zcjl

涅槃



发贴: 537
积分: 65
于 2006-03-01 09:15 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
VB+ADO?这个还是在学校时候曾经用过,现在早忘了 ^_^


作者 Re:请问有没有关于JDBC实现异步查询的方法? [Re:herong]
herong





发贴: 10
积分: 0
于 2006-03-03 22:14 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
to zcjl:
分页查询如果没有索引是不是就必须对整个表排序?直接对查询结果排序应该没有用吧?

VB+ADO,只要在查询的时候设置异步查询的选项就可以了。

我后来在CSDN上得到解决办法了,其实JDBC的查询本身就是立即返回的。




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923