求助:为什么我用的InterBase数据库的速度如此糟糕???

honestsky 2003-10-29 10:41:10
我正在做一个项目,用的是InterBase数据库,用户反映数据库增大的非常快,于是做了如下试验:(环境是Delphi6,赛扬II-900,256M内存,用了一个IBTable控件,并关联了一个事务处理的IBTransaction控件)

t:= now;
With IBTable1 do
begin
Open;
for i:= 0 to n do
begin
for j:= 0 to 99 do
begin
Append;
FieldValues['Date']:= t;
FieldValues['A']:= j;
FieldValues['B']:= i;
FieldValues['E1']:= 99.99;
FieldValues['E2']:= 11.11;

Post;
end;
end;
end;
IBTransaction1.Commit;

结果居然发现,当i的循环次数n分别是9、19、29、39时(即往同一张表内增加1000、2000、3000和4000条记录),增加记录的速度变得非常慢!数据对比如下:

增加记录数 表的大小 耗费时间

原始表 860,160 字节 -
1000 条 925,696 字节 9.764 秒
2000 条 1,064,960 字节 71.258 秒
3000 条 1,277,952 字节 205.745 秒
4000 条 1,556,480 字节 671.255 秒

最后我没有试验n为99时,即增加10000条记录的情况,因为才增加4000条这样的速度已经太糟糕了。
有谁能帮帮我,为什么仅仅增加4000条记录,耗费的时间就高达10分钟以上了?!是不是InterBase需要有什么特别的配置技巧呢?
前面有一位大哥发贴说“InterBase速度惊人! (sztony ) ”,可是在我这里为何如此糟糕呢?
...全文
46 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
honestsky 2003-10-29
  • 打赏
  • 举报
回复
TO: CuteBit(康):

一语惊醒梦中人,我刚才用了IBSQL,试着加入了一万条记录,结果耗时不到两秒,谢谢啊!呵呵!
CuteBit 2003-10-29
  • 打赏
  • 举报
回复
hi,honestsky
你的做法糟糕了点~
在 c/s 数据库开发中数据量大的表尽量不要使用类似 tables 的控件操作改用 IBSQL 试试.
一些细节请看看
http://expert.csdn.net/Expert/TopicView.asp?id=2175125

我在 p4 1.6G 512MRAM /win2000/firebird15RC6 force write ON
对一个表(表里有 几百万条记录的表) insert ,速度达到 一千多条/秒
记录数增加,insert速度都没有大变化.

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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