请大家来确认一下:ADO执行效率比BDE慢十万八千里!

中骑士 2003-10-18 01:01:35
我编了个程序来做试验,
一个用BDE,一个用ADO,编了两个极其简单的程序,对同一个数据库(1050821条记录,63690KB)进行“select * from students.db”来比较:
1. 用BDE:用了25秒,在DBGrid中显示了全部记录。
用ADO:用了2分钟!
为什么?是不是ADO比BDE慢?请大家来确认一下,如果这样我以后就不用ADO了,(我听说BDE是Borland推荐使用的).
2. 还有一个就是ADO对中文会显示乱码,改字体也没用,但如果把记录减少的话(我一气减到了10条)就不乱码了!!!!!!!!!!!!!!!!!!!!
结论:ADO有什么好?请大家来评论或确认我这个结论,希望能推翻我的观点(我也不想这样)
...全文
93 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
bittertia 2003-10-21
  • 打赏
  • 举报
回复
我的程序是ADO+Sybase。批量处理SQL语句时感觉有些慢,但并没有做测试。我选择ADO的原因是ADO不需要像BDE一样安装那么麻烦,并且改变数据库种类时程序所受的影响几乎没有。
COKING 2003-10-21
  • 打赏
  • 举报
回复
用OLEDB或直接数据库的Driver进行API SDK 算了?
lihongxing2002 2003-10-21
  • 打赏
  • 举报
回复
不把。一定是你的程序有问题
yhec 2003-10-21
  • 打赏
  • 举报
回复
这BDE许多是调用了DAO,
DAO的缺陷:1。没有记录号,常为-1;
2。记录总数返回常不正确;
但速度较快,微软都放弃DAO了,用ADO取而代之,
ADO没有上面的两个缺陷




Cocoky 2003-10-21
  • 打赏
  • 举报
回复
ADO简单易用,BDE很少使用,所以没有感觉,回去试试
cfchhx 2003-10-21
  • 打赏
  • 举报
回复
SQL功能多强啊,我年初刚转到ADO,我用ADO后真的不想用BDE了。(BDE想说爱你不容易)
yjy1001 2003-10-21
  • 打赏
  • 举报
回复
没比较过
只能——学习了
ghj386 2003-10-20
  • 打赏
  • 举报
回复
请上面的大哥在打开后试着在DBGRID里到最后一个记录看看,ADO在瞬间完成,BDE需要多长时间?我有一个3万条记录的.DBF文件,BDE需要25秒。因为ADO在读取记录时,做了较大的缓冲设计,所以其第一次读取的时间慢一些是正常的。对于一些基于桌面操作时,返回的记录数一般都不是很大,而且经常需要在记录间前后移动。从这一层面讲,ADO要好过BDE,想想看,如果操作者能够在移动到下一个单据时,一下子就完成了,而不是要让时间刷闪一会才到,谁还会在乎第一次打开时慢一点呢。况且在程序执行特定的任务前就打开大的数据库是非常不明智的。
hatumei 2003-10-20
  • 打赏
  • 举报
回复
各位大虾,我测试过,BDE比ADO快1.4倍左右(bcb5.0+oracle8.1.5),而且BDE可以对重复的查询进行缓冲。
duduwolf 2003-10-20
  • 打赏
  • 举报
回复
我讨厌bcb,打包太麻烦了
BCB 2003-10-20
  • 打赏
  • 举报
回复
某些本地库,BDE比较快,因为它的驱动是文件式的访问,borland进行了优化,
而一些用SQL语句驱动的非本地通用库,
如sql2000server,应该是一样的
BDE是过时的东西了,发布那么麻烦,所以不要因一点问题妨碍你的方向

Bensoon 2003-10-20
  • 打赏
  • 举报
回复
我觉得也蛮慢的!!
kaimy 2003-10-20
  • 打赏
  • 举报
回复
没有发现!我觉的ADO挺好的!
yst_killed 2003-10-20
  • 打赏
  • 举报
回复
没比过!
不过我有一次打开一个很大的数据库时候(SQL),等了好半天才在DBGrid中显示出来
nobill 2003-10-20
  • 打赏
  • 举报
回复
两个我都用了的,没什么太大的差别啊!
路人丁 2003-10-20
  • 打赏
  • 举报
回复
在Borland下操作SQL Server 真的是ADO快吗?
对于大量数据从后台读到前台即使是微软自己的数据库ADO操作也比BDE慢的多!
我做过相关的试验,结果ADO慢的很!简直不能用!
hatumei 2003-10-20
  • 打赏
  • 举报
回复
ghj386(ghj386) 的回复是比较合理的,BDE打开数据集的时候并非全部取出数据,所以在执行open操作的时候,bde会比ADO快,但是如果需要对记录集遍历操作,BDE很慢(BDE的next操作
很费时间),而ADO基本不要时间。我对13万条的oracle数据库表进行select 操作,再First(),
Last(),结果二者时间差的惊人。BDE需要8万多ms,而ADO仅需120ms,二者是600多倍的关系.
springai 2003-10-20
  • 打赏
  • 举报
回复
BDE发布太麻烦,没有ADO简单,并且在在用TQuery对SQL SERVER作插入和更新时对sql的语句长度有限制,我们部门现已完全不用BDE了。
chineseship 2003-10-20
  • 打赏
  • 举报
回复
最佳测试条件 应该是oracle!!!
BDE是borland的 所以不能用borland的db
同理ms的也不能用。

所以推荐用oracle!
weixing979 2003-10-19
  • 打赏
  • 举报
回复
没试过
加载更多回复(15)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧