用ClientDataset连接一50万记录的TABLE,程序在激活时(ClientDataset.Active:=True)怎么会这么慢??
用ClientDataset连接DcomConection且对应服务应用程序的Providerset(对应AdoTable,此表有近50万条记录).第一次激活此控件时ClientDataset.Active:=True
会等待十几秒钟,实在让人受不了。不知大家有没有办法将其速度提快?
问题点数:0、回复次数:12Top
1 楼ahliuj(ahliuj.exe)回复于 2003-03-04 19:47:39 得分 0
谢谢大家!Top
2 楼chechy(www.qdocuments.net)回复于 2003-03-04 19:50:38 得分 0
TClientDataSet可能有一个叫PackageRecords的属性,默认是-1即全取。改成20,它就一次只去20条,需要在自动取。属性名字可能不准确,你找找值是-1的属性,试试。
(Borland公司打击盗版,我机器上不能装,只能靠记性)
Top
3 楼TOMWLD(仰首再笑天)回复于 2003-03-04 20:08:03 得分 0
50万条记录的表最好不要用ADOTable,用ADODataSet只取你需要的记录即可Top
4 楼taxi(当时明月在,曾照彩云归)回复于 2003-03-04 21:42:43 得分 0
这么多条记录给谁看呀。Top
5 楼ahliuj(ahliuj.exe)回复于 2003-03-05 08:54:09 得分 0
ADODataset更适合取多记录吗?Top
6 楼cjfzy(他山之石,可以攻玉。)回复于 2003-03-05 09:12:42 得分 0
为什末一次取50万条数据呢?
在服务器端做一个存储过程,过滤处需要数据,在取回来不行吗?Top
7 楼winnerkun(WinMain())回复于 2003-03-05 09:40:34 得分 0
过滤记录的确是可行的办法Top
8 楼tfxg()回复于 2003-03-05 23:08:16 得分 0
我想问问你有必要一下子提50万的数据吗?
如果没有必要可以参楼上几位所说的方法Top
9 楼firstshine(黑里透红)回复于 2003-03-06 00:11:02 得分 0
ClientDataset的主要用途是用在多层结构的程序,多层结构的程序有一个原则,那就是数据的下载要求少量多次,这样才能发挥它的优势。所以ClientDataset也符合这个原则。一次500000条,就不应该用ClientDataset来处理。Top
10 楼ahliuj(ahliuj.exe)回复于 2003-03-07 09:21:10 得分 0
看错了文件名, 主是主表的记录真正查询的只有一万条Top
11 楼Drate(小虫(好好学习,天天向上))回复于 2003-03-07 09:24:29 得分 0
如果是需要添加数据的话,我一般会这样写:
select * from tablename where 1=2
呵呵,这样的效率一定会很快的了Top
12 楼cqzyf(阿牛)回复于 2003-03-07 09:33:46 得分 0
这样效率也不错select Top 0 from tablename
Top




