.................. (200分)

  • 主题发起人 主题发起人 bluely
  • 开始时间 开始时间
B

bluely

Unregistered / Unconfirmed
GUEST, unregistred user!
......................
 
我也想知道!
前段时间我也问过类试问题,好象没有结果!

问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=592084
 
我是一个新手,刚开始学习delphi,不知道那位大虾可以给点建议
 
if you use SQL, dependes on

1) how you design table indexes
2) how you design SQL statement which can use correct indexes.

for Example: SELECT * FROM xxxx a
JOIN xxxx b ON ....
JOIN xxxx c ON .....
WHERE .....

sometimes this kind of SQLs may use indexes (if they have multiply
indexes), but not correct one, if we change a little bit
let's say change it to LEFT JOIN, ..., and so on,
it would use the correct index and return the same result instantly.

sometimes even you think it should use THIS or THAT index, but it doesn't,
then you have to give the hints, for example:

SELECT ... FROM xxx a
JOIN xxxx b ON ....
WHERE a.PrimaryKey = a.PrimaryKey AND .....

the trick how to know the SQL is the best one is the internal write count
should be 0 and it use correct index, then even more complex SQL would
cause only 0.001 seconds.

Design SQL statement is fun, but making it use correct index is more
fun.

I have designed large project which has millianns records by using
Interbase in U.S.A, it runs perfect.
 
差距没有那么大,不然MS也不会放弃支持Vfp。
用delphi来开发处理速度和vfp差不多的数据库是没有问题的
你用delphi操作dbf时加索引了吗?这很重要!

重庆市地税局九龙坡区有一套市局自己编的纳税系统,是用PB做的,后台用的是sybase11,
其纳税申报子系统在拨号网中奇慢,要1分多钟才能查到指定主键所对应的各个表中的
对应的内容,你知道为什么吗?
因为他们没有加够索引!结果找电信上DDN(128K),又找我给他们做数据上传模块,
我给他们诊断的结果就是这个。
最后加够所要的索引后,速度奇快,第一次5秒内,第二次后查找时间在1秒内。



 
我觉得不可能
最重要的原因应该在于优化,包括数据库结构、索引、sql语句等等
有一个系统,别人用vfp做,我把dbf文件导入access中再用diamond访问,
做出来的系统比vfp快好几倍
本地数据库的问题,我也一直在考虑
我的结论是,较小的用access,较大的用Interbase或mysql
 
您可以用MS SQLServer大型数据库,建议你用sqlserver2000,
需要处理和计算很大的数据时,可以用存储过程、视图或触发器,
表结构设计时,要注意建立索引。
 
建议您使用InterBase或者SQL Server桌面版.
 
将Interbase服务的内存设为65536,
速度提高很多,
在Interbase的服务程序中有该选项.
 
VFP不可能比DELPHI快那麼多的,一定是沒有索引了
本地也一樣可以用大型庫啊!!oracle,db2,mysql啊
 
关键字段我是有加索引的。在没有索引的字段我测试了一下,同样用SQL语句来select, VFP还是快
,而且查询时还有进度条显示。而Delphi不管是用什么后台数据库,用query都无法显示进度条(只有那个第三方
的Dbisam有这个功能。不过他处理起这么大的数据时有点力不从心。)。

大家深入探讨这个问题吧。明天就瓜分分数,哈哈。!!
 
小型:interbase + ibx ,
大型:oracle
 
你有二种数据库可选
DB2
ORACLE9
可以解决你的问题,接口必须用专用的数据库接口,而不是ODBC之类
目前世界上解决千万级的数据都用上述二种数据库
ORACLE我已用了近十年了从6.0--------9.0 相当稳定,棒!
 
to samboy111: ORACLE9做单机版的程序发布会不会很麻烦吧。
 
是的有点,可那也没别的好办法啊。各位谈谈!
 
我说二句:
1、foxbase、foxpro我都用过,它的好处是提供了许多的命令函数,就如同Pentinum cpu
与8088一样,不仅在时钟上提高了,内部的机器指令也增加了,由此提高了cpu的处理
速度一样。
2、*.dbf的数据库的存储结构比较简单,这在前几年的杂志报刊上可以见的到。当然处理
简单存储结构的文件比处理复杂结构的速度要快。
但Sql是一个新的数据库概念,这和Foxpro不是一个档次,不能说那个快与慢,好与坏,
而要看你的工作需要哪个来处理。
 
Bluely:你的项目结束了吧?

Dbisam301你上次破解了试用版?
窑洞上的可能是注册版吧 ftp://soft:soft@ftp.51delphi.com/Dbisam301.rar
 
结束问题,最终还是确定用dbisam来做数据引擎,dbisam升级到3.01后已经很好用了。下面
是测试的结果(在dbisam的官方网站上的)
Benchmark Run on 6/7/00 4:25:14 PM

Database Engine Total Time (ms) Total Row Count

Advantage V5 Driver 37227 925

Apollo Server 5.1 Driver 153692 603

DBISAM V2 Driver 1672 1020

Interbase (IBX) Driver 2898 925

MS Access ADO Driver 3990 925

Paradox (BDE) Driver 4437 1020
 
后退
顶部