我有一个含3万条纪录的ACCESS数据库,用tquery控件直接连接,程序启动太慢,是否可以改成其他数据库形式,加快程序的启动(100分)

  • 主题发起人 主题发起人 sun99
  • 开始时间 开始时间
S

sun99

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个含3万条纪录的ACCESS数据库,用tquery控件直接连接,程序启动太慢,是否可以改成其他数据库形式,加快程序的启动
代码:
 
用ADOQUERY连接 启动程序的时候先前100记录
 
用ADOQUERY连接 启动程序的时候先取前100记录
 
用MSSQL SERVER等。
 
同意上面的,不管什么数据库,一启动就读所有数据肯定受不了啊。
只读部分或根本就不读。
 
用个线程
让用户感觉不到
 
根本就不应该启动时用QUERY读取所有记录。没有这样写程序的。
 
如果仅仅因为一个表数据量稍大就要用大型些的数据库,

是在没道理,本来程序想法就不对,不该用Query一次取

所有数据,换任何数据库这样都不行,如果网络连接还有

大量网络开销!
 
强烈赞成吴剑明!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!
!!!!!!!!!
!!!!!!
 
如果用QUERY还这样,那只能是程序设计有问题。检查你的SQL语句吧,不行在DELPHI中测试一下
 
karxios:就吴兄说得对吗?
 
一次读这么多?不累死才怪呢。你大家说的那样一次只读一部分。
 
在本机中,试试改为ServerCursor类型
 
1、用Query取出一部分纪录。在程序启动后,然后再去数据,程序启动就不会太慢。
2、如果合适,可以考虑用TAdoQuery它有异步模式,可以在后台娶数据,前面的是照样进行。

总之,全部娶数据是极不合理的。即使现在能用,将来数据量大,还是会出现速度问题啊。
 
1.
FormActivate

postmessage() //自己的消息

响应自己的消息

2.
同上 top...等


3.
用 1+2;

////
ps
子查询改为连接



 
一碗饭一口也吃不下去啦
 
其实数据量低于100万的,使用mysql 很不错的
 
不明白 为什么 开始 就要 读 全部

不过.

我个人 认为, TQuery 的确是 慢得不可以 忍受的.

我一直在用 Diamond 的 DAO 的控件 读 ACCESS 的库

这会 , 又试了 KAO 也快. ( 好象 比 Diamond 还快, 也好用.)
 
后退
顶部