请教一个ADO远程查询数据库的问题:一条SQL查询有10万条记录,请问这个结果是如何放回的?

时间:2021-12-31 23:25:28
如题,一个ADOQuery远程连接了一个数据库,执行一条SQL语句,结果有10万条记录,请教各位高手,这种情况下客户端直接ADOQuery查询会不会出现程序无法响应的情况?
以及这么多的记录传到客户端时改如何处理?
环境是局域网,万分感谢大家指点!

12 个解决方案

#1


用到多少条记录就返回多少条,处理完这一段再继续返回下一段,如此反复直到10万条都搞完,而不是一次性返回所有记录。很简单的道理,就好比分页显示数据,假设一个屏幕只能显示30行数据,那就请求返回30条数据,点下一页时就返回下30条数据,而不是每次都向服务器请求返回全部数据,既费带宽又费cpu。

#2


如果这10万条数据要返回后立即处理,那就用多条线程去分段请求数据,就跟多线程下载文件一个道理。

#3


万分感谢“专业撸过”,能否给一些例子代码看看,谢谢!

#4


原始ADO是可以取的,至于c++builder里面的ado控件是有超时无响应的,最好自己用tcp传输

#5


谢谢nextseconds,我感觉如果直接用ADO会有很多问题

#6


10万条记录,确定你不需要分页?

#7


一次取到客户端内存里了。

#8


引用 5 楼 jackyrouse 的回复:
谢谢nextseconds,我感觉如果直接用ADO会有很多问题


用ado一次返回10万条记录小意思,我曾经一次取回sqlserver2000的3个字段的40w条记录在DBGrid里列出,没有任何问题,DBGrid反应也很快,不过这么多都取回来没什么用

#9


如果ADO出现异常你可以ping一下服务器,一般会有大量的断点,解决方法是延长ADO的响应时间,最根本的是解决这种网络异常,因为这种时候大多数CS程序的连接都会出现问题

ADO是很完美的,SQLSERVER2000也是一个经典的产品,只是Access不尽如人意

#10


要看数据量的,如果一条记录1K字节,10W就是100M字节,局域网下用户少时还勉强能接受,如果一条记录10K,那么就是1G字节,单用户都成问题了。

#11


引用 10 楼 PPower 的回复:
要看数据量的,如果一条记录1K字节,10W就是100M字节,局域网下用户少时还勉强能接受,如果一条记录10K,那么就是1G字节,单用户都成问题了。


是了,1k字节很大了,大概只有文章系统才会用这么多字节了

#12


我的文章系统的标题的字段总长度才设为40字符,一般的标题用到的最长也就20字符,文章内容就可以很长了。一般是先列出标题,用户根据标题选文章,当用户要看文章时再用另一控件执行一次查询取回文章内容。

#1


用到多少条记录就返回多少条,处理完这一段再继续返回下一段,如此反复直到10万条都搞完,而不是一次性返回所有记录。很简单的道理,就好比分页显示数据,假设一个屏幕只能显示30行数据,那就请求返回30条数据,点下一页时就返回下30条数据,而不是每次都向服务器请求返回全部数据,既费带宽又费cpu。

#2


如果这10万条数据要返回后立即处理,那就用多条线程去分段请求数据,就跟多线程下载文件一个道理。

#3


万分感谢“专业撸过”,能否给一些例子代码看看,谢谢!

#4


原始ADO是可以取的,至于c++builder里面的ado控件是有超时无响应的,最好自己用tcp传输

#5


谢谢nextseconds,我感觉如果直接用ADO会有很多问题

#6


10万条记录,确定你不需要分页?

#7


一次取到客户端内存里了。

#8


引用 5 楼 jackyrouse 的回复:
谢谢nextseconds,我感觉如果直接用ADO会有很多问题


用ado一次返回10万条记录小意思,我曾经一次取回sqlserver2000的3个字段的40w条记录在DBGrid里列出,没有任何问题,DBGrid反应也很快,不过这么多都取回来没什么用

#9


如果ADO出现异常你可以ping一下服务器,一般会有大量的断点,解决方法是延长ADO的响应时间,最根本的是解决这种网络异常,因为这种时候大多数CS程序的连接都会出现问题

ADO是很完美的,SQLSERVER2000也是一个经典的产品,只是Access不尽如人意

#10


要看数据量的,如果一条记录1K字节,10W就是100M字节,局域网下用户少时还勉强能接受,如果一条记录10K,那么就是1G字节,单用户都成问题了。

#11


引用 10 楼 PPower 的回复:
要看数据量的,如果一条记录1K字节,10W就是100M字节,局域网下用户少时还勉强能接受,如果一条记录10K,那么就是1G字节,单用户都成问题了。


是了,1k字节很大了,大概只有文章系统才会用这么多字节了

#12


我的文章系统的标题的字段总长度才设为40字符,一般的标题用到的最长也就20字符,文章内容就可以很长了。一般是先列出标题,用户根据标题选文章,当用户要看文章时再用另一控件执行一次查询取回文章内容。