有一个Paradox的表有50000条记录,用sql查询极慢,用filter也很慢(50分)

  • 主题发起人 主题发起人 nickname
  • 开始时间 开始时间
N

nickname

Unregistered / Unconfirmed
GUEST, unregistred user!
不要说用setrange之类的,我想请教是否和如何可以用sql或filter达到
较快查询的效果,而且我的是TABLE是M/D,当我用QR时查询主表(有50000
记录)并打印主从表,我要等很长很长时间.
 
你先看看是拿一部分慢. 做个 sql 执行一边.看一下速度.
一般来说. sql 的速度并不慢.
是不是QR的打印生成比较慢?
若是多行打印,你可以用 writeln 自己控制
一行行打.
 
多谢仁兄,但是我从前用ORACLE for UNIX都是用SQL,
但是现在不行,两个一样慢,而且不是在生成报表时.
我想是不是PARADOX对SQL支持问题的查询一个,
只有在利用INDEX时会快,但是我不可能总可以
用上INDEX,尤其是筛选记录时
 
方法是有的, 但相当麻烦.
主要把一句复杂的查询条件分割成几部分, 通过临时库保存中间查询结果, 下一步
查询的是上一步的结果. 这样总可以充分利用index的优势了.
 
ANother_eYes:你的办法理论上是很好,但是,实际中有一点儿问题,
我看诸如Paradox,Dbase...的数据库处理海量记录时就是问题.
 
eYes说的对
补充建议查询时除非必要,否则不要查询太多字段,当需要具体数据时在查询
例如:
只查:姓名、ID
当需要具体数据时可以用ID来查找,这样会提高速度
 
哈哈,哈哈。终于逮着一个问题了,我明天就要出差,
同时我还没有赚过专家分,希望能赚一点。
1。原来我实验过50万的PARADOX表,SQL打开速度极慢,
转而用TABLE打开时速度快了很多,只是在GRID中移动时,速度还有一点慢。好象有文章说过TABLE的FILTER实际上也是SQL,但系统自动优化了。
2。使用50万的DBF表和50万的PARADOX表速度相差极大,
所以你可以使用DBF表试一试。
BYE,BYE
 
这就是用Tquery和Ttable 的最大区别,你可以看看李维的书,
里面有精确定义
 
llzx,请问哪里有李维的电子版的书,
 
wuyi :
你是要告诉我们李维的电子版的书吧?
 
我这里有D4核心编程技术,主要是介绍数据库编程方面的. 李维的书没见过.
 
wuyi,
能Email一份的话,将不胜感激
 

1.5M大小,email不方便,用http://www.netease.com/~bnm/delphi/Delphi4.zip

下载吧。
 

1.5M大小,email不方便,用http://www.netease.com/~bnm/delphi/Delphi4.zip

下载吧。
 
It's time to end this question
thanks
 
多人接受答案了。
 
就结束了?问题还没有解决呢?
今天下午我做了一个实验,用sql在200次循环中读400多行的表以生成报表需要20秒,而我一狠心用table一条一条记录去执行只用了不到一秒的时间。
 
后退
顶部