大家一起来说说,CB对大数据量的操作效率问题!

szxiaoxiao 2005-09-22 05:57:45
不知大家在开发中有没有这样的问题? 有时候要查询上百万的数据,数据库方面分区索引什么的自然就不用说了, 该有的都有了,可在CB里面的查询就是慢,相对于PB或其它开发的程序来说 , 最近也一直在为这个查询慢的事情想办法, 经过测试(用的是BDE),我发现:
从数据库中显示58692条记录:(全表显示,不加条件)
用Query + DataSetProvider + ClientDataSet + DataSource + TUpdataSQL 花5.8S
用Query + DataSource 花2.8S
用Table + DataSource 花1.0S

可我们的系统洽洽选的是第一种方法, 为什么要用第一种方法呢, 我们是这样解释的, 我们的应用程序中除了给用户提供复杂查询外,还要做数据修改,想不出用第二三种方法怎么实现对数据的修改呢?不知各位怎么看这个问题?我们在其它程序中有很多采用了强制索引,这样效率提高了很多, 但这里却用不上, 比如说修改中在修改条件语句中明明是按索引来写的,查数据库中却没用到索引,修改一条记录要花3分钟(表的数据量有1千万),而别的系统只要30秒,所以最近一直挨骂呀。
各位,能不能一起来讨论下, 这个问题!当然我的DBA也在不遗余力的找问题!
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
查询和修改分开做,不要用同一套组件。
szxiaoxiao 2005-09-23
  • 打赏
  • 举报
回复
如果换成DBExpress的话已经来不及了,已经开发好的系统了,而且即将上线了。
nuelaleo 2005-09-23
  • 打赏
  • 举报
回复
用DBExpress组件,很不错,效率很高。BL公布的要替换BDE。
详情可以看一看李维的《Delphi7高效数据库程序设计》,整本书请的就是DBExpress,网上可以下载的到。
szxiaoxiao 2005-09-23
  • 打赏
  • 举报
回复
我也知道要用TQuery直接连接到TDatabase最快了,可要更新数据,这个方法怎么做得到呀?还希望更多的高手来讨论!
szxiaoxiao 2005-09-23
  • 打赏
  • 举报
回复
要查了才能修改, 分开做不行的, 不过我现在正在测试, 用Query + DataSource 和Table + DataSource 也可以做数据修改的。
william_zhao 2005-09-22
  • 打赏
  • 举报
回复
谁知到 哪里有 关于 CBuilder + Oracle 程序开发的好书给 介绍一本 谢谢了
  • 打赏
  • 举报
回复
对于大数据量的查询,使用TQuery直接连接到TDatabase就好了。

1,178

社区成员

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

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