我使用DELPHI写了一个程序来处理报文,报文大小为300-500K,大概有3000行以上(不是每行格式都一样,报文按段来分),读每一行,都要把相关数据写到数据库。而且从报文中读出的数据还要和数据库中已有数据做比较后才存数据库。结果发现,速度很慢,处理一个报文(在多用户情况下),要30分钟以上。
测试发现,很多时间都花在到数据库存取数据上。
比如,我到数据库取一条数据,和报文中数据做比较。我是用adoquery做的。
adoquery.sql.text.....
adoquery.open;
....
但是,由于报文3000多行,循环打开adoquery,耗费了太多的时间。不知道有什么好办法去取数据????原来想在一开始,还没有循环的时候把参数取出来,但是,由于要取的参数和报文内容有关系,也就是sql语句后面的where 字段=值,值是变化的。写数据库我做了改进,全部使用insert或update语句执行。速度很快。谢谢大家。