十万火急,如何提高查询速度?(100分)

  • 主题发起人 主题发起人 katez
  • 开始时间 开始时间
K

katez

Unregistered / Unconfirmed
GUEST, unregistred user!
我做的一个程序中,需要访问一个DBF数据库文件,这个数据库有49M之多,查询速度非常之慢,有没有什么法子能提高查询速度.我是用SQL查询的.盼尽快回复.
 
1.通过bde访问,相对于49M数据来说,值得用
2.用query,不要用table
3.对查询字段建索引
4.提高机器的硬件档次
 
5.用sql限制返回的数据量,只返回你需要的字段的一定范围的数据
 
這要看您現在的具體方法, 李維的書中有很好的說明
 
对于DBF数据库,TTable一般有着比TQuery更好的效果。

从数据库的角度,
1)调整索引,并在使用时设置TTable的IndexName属性
2)考虑数据的分段,将一个大的表划分为几个较小的表
3)这么大的数据,该考虑用Client/Server型的数据库了

最好说说你的表结构,这样大家才能提出更有针对性的意见


 
DBF数据库,如是local,TTable一般比TQuery有更好的效果,
但是如果是C/S,TQuery般比TTable有效果.
1)按检索要求重新赋予TTable的indexname;
2)使用限定,如setrange();
对以上几个大虾的补充.
 
如果是FOXPRO的建议你用VISAUL FOXPRO 作吧
,只有他的速度可以有很大的提高
 
同意arm
dbf的文件建议用visaul foxpro
 
请问rixin你指的李维的书是什么书?
 
用access+ado.
 
>>有49M之多
文件型的数据库怎么受得了这么大的数据量?
我要是数据库,早就罢工了,
至少也该换到Access

<B>换个数据库总比改程序简单吧?</B>
当然还是要优化一下,
1、数据库本身:多建索引
2、程序:严格限制查询条件,只取需要的字段
 
李维的<Delphi 3.0 从入门到精通>
李维的实战Delphi4(上、下)册,但国内比较难找
 
在服务器端写存储程序,然后在程序中掉存储程序,查询让服务器来做
 
多人接受答案了。
 
后退
顶部