Interbase的速度怎么那么慢!请高手指教!(100分)

  • 主题发起人 主题发起人 蒋劲刚
  • 开始时间 开始时间

蒋劲刚

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个数据库,只含一个表,有56871条记录,GDB库大小为24M,DBF为16M
我分别用TABLE访问DBF,用IBTABLE访问GDB,打开速度差不多,但定位速度相差太多,
DBF: last指令瞬间完成
interbase: Last指令,用了近两分钟
重设定INDEXFIELD
DBF: 瞬间完成
INTERBASE: 视当前记录的位置,如果记录在最后要用两分钟以上
Filter
interbase: 在设定时很快,但当我取消时,如果记录指针在表尾的话,也要两分钟以上

请问是不是我没有用好INTERBASE?
 
我用IB,但我从不用LAST指令。
如果可能的话,可以在SERVER端用存储过程搞定它。
IB速度不慢,据李维所说,速度可与SQL SERVER比。我感觉在几十万条记录的情况下,
足够用了。
可以考虑调整一下IB的设置:cache size; database pagesize等
 
怎么在SERVER端用存储过程?
 
interbase在DELPHI中最好不要使用ttable控件,因为速度奇慢,不知是什么缘故
所以我一直用TQUERY这个控件。其实用SQL语句可以完成所有的功能,何必再用
TTABLE呢?我试过5万记录从头到尾更新,逐条用UPDATE语句(必须有索引)比用
TABLE。NEXT快几百倍。
INTERBASE我用了几年了,还是很好用的。有什么问题和我联系:
LIANGQIAN@163.com
 
使用存储过程可以看帮助文档,有详细说明。
如果考虑性能,在C/S结构中,除非记录数很少,否则一定不要用TTABLE,TIBTABLE
应该用TQUERY,TIBQUERY选出要处理的记录。
 
呵呵,你的TIB系列搭过补丁么??没有打补丁前的效率很低
你可以用 BDE连接你现在出问题的数据库和表(TQuery控件),速度快很多。
有关这些的一些测试结果你可以查看我铁过的遗篇文章
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=480716
//用INTERBASE,只要你该表里记录不超过10万,即使LAST也不会很慢
对,我也推荐你最好使用TQUERY,而不是TTABLE!
 
TIB的补丁哪有?
我用TQUERY试过,也远不如DBF快
 
用BDE打开时就报错了,可能是我的每条记录字段数太多(66个)
 
我的数据库有2个表每个表各30万条,用TABLE控件或在IBConsole中LAST指令确实慢,不
过在实际应用中很少要将记录指针移到最后.如楼上各位大师所说最好用TQuery.
我用了2年InterBase速度很快很好用。
 
但是为什么DBF那么快,而GDB这么慢呢?
 
DBF虽然落伍,但并非一无是处,如果单机版,DBF也不错啊...虽然移植性差多了...

文件操作最快.C/S模式自然比不过,不过和LAST没有关系了...
 
正常啊
用ttable打开再last,需要在服务端把整个表的记录全部取到客户端,不慢才怪
而文件型的dbf只需要定位到文件的相应位置就行了,当然瞬间完成了
你真想比较一下二者的速度的话,建议你做个比较复杂的sql查询,就知道谁快了……
 
同意 左大侠 。
 
但是同样DBF也在SERVER上的话,为什么也比GDB快呢?
 
dbf是文件型的,哪来的server?
 
我是说DBF在文件服务器上,不在本地,通过共享来访问它,速度也比IB的C/S方式快,
是否可以这样说,C/S在此方面就是比文件方式快呢?
 
dbf放在本地还是在服务器上,跟这个问题完全没有关系呀
你的程序读dbf是直接读取文件,读interbase需要通过客户端/服务端的一系列交互活动
才能完成
 
最好用IBSQL,一定快。它只有next,但速度也快,省了将每条记录读到本地。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
771
import
I
D
回复
0
查看
845
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部