ADO的效率问题,急 系统采用C/S结构,数据库采用informix,client端用ADO对数据库进行连接操作。但是,现在带宽有限,而传输的数据量比较大,(4000条数据,进行一次普通的查询[select * from tbName]要花费2分钟)。我应该怎样优化ADO,提高效率?请大家帮忙。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用 ADO 的游标为 服务器 端,应该有一个 CursorType 或者是别的之类的属性。用动态游标。 才4000条数据,进行一次普通的查询[select * from tbName]要花费2分钟,如果说这种速度的话,再怎么优化也不见得有什么效果。楼主的带宽也太少了吧。 将adoquery的cashsize设置为100(100是最好的),还有尽量分次传输数据(三层可以实现,两层可以用代码控制).不过调节cashsize就能使你的运行速度快上数十倍了. 1、将CursorLocation 设置为 adUseClient2、使用Conn.Execute执行SQL语句,返回Recordset,不要使用Recordset的Open方法。3、做个进度条显示数据读取进度。 :)4、更换其它数据库,比如Sql-server5、现在什么年代了? 都ADSL了,还存在带宽问题? 其实我觉得带宽不是很大的问题。因为纯文本的拷贝,也有50K/S左右。所以我想找找怎样提高ADO的效率 优化Sql语句select * from tbName where ....使用存储过程也可以有效降低网络流量 我用sql数据库,select语句在几十万条记录中提取数据都是眨眼工夫。要么你的数据库不好,要么网络传输速度太慢。 to: chenyuandxm(一剑平江湖) 你只的是在服务器端的操作吧。我觉得几十万条数据是不可能在眨眼间全部传输到远程的客户机上,否则就牛了。我这里网络是一个因素,但是我觉得没优化使用ADO也是一个因素。网络因素已经无法改变,所以我想在ADO的使用上下功夫。请兄弟们赐教。 没事你为什么select * 出来啊,把你有用的给Select出来不就省好多啊 我用select * 只是为了测试问题。我想知道ADO的使用上提高效率需要的注意点。 基本上不是ADO的问题,可能是数据库规划不好,比如没做索引 其实ADO的优化非常有限,按MS的说法,一是Cachesize设大一点,二是将LockType设为Readonly;绝对不要用服务器游标。你可以用一下针对informix的客户端引擎。 delphi 急 我想让程序接收刷卡机,有没有关于这方面的资料?还有就是写卡怎么办? 如何在WINDOWS中取得当前运行的DOS窗口句柄??? label中如何显示多行 Coinitialize在哪个单元文件里面? 请问调试自定义component的技巧 一个关于句柄的问题! 在DBGrid中添加数据,当记录不符合某条件时不允许上下卷动(即只能定位在该记录),如何实现 olecontainer怎么用? 加载控件问题? 在线等待!急!关于域用户验证 关于入库出库急求帮助
2、使用Conn.Execute执行SQL语句,返回Recordset,不要使用Recordset的Open方法。
3、做个进度条显示数据读取进度。 :)
4、更换其它数据库,比如Sql-server
5、现在什么年代了? 都ADSL了,还存在带宽问题?
使用存储过程也可以有效降低网络流量
你只的是在服务器端的操作吧。
我觉得几十万条数据是不可能在眨眼间全部传输到远程的客户机上,否则就牛了。
我这里网络是一个因素,但是我觉得没优化使用ADO也是一个因素。
网络因素已经无法改变,所以我想在ADO的使用上下功夫。
请兄弟们赐教。
我想知道ADO的使用上提高效率需要的注意点。
绝对不要用服务器游标。
你可以用一下针对informix的客户端引擎。