我需要一个重要的帮助。 我有一个已经存在超过7年的VB6应用程序,我有几个客户使用它作为他们的会计解决方案。现在我的问题是一个特定的客户端已经变得如此庞大,数据库大小为15GB,分类帐数据库表超过400万行,客户大小超过100,000,ETC。
我在该应用程序中有一个代码,客户在检查一些参数后以固定费率借记,对于具有小型或普通数据库的客户端,它工作得很好,但是对于这个特定客户端,此代码有时不会甚至在6小时内完成,它变得非常头疼,我需要帮助!
代码看起来像这样.......
Select * from table Customers order by account number
do until rst.eof
select * from table purchase where account number = rst!account number
if found
A1 = "YES"
else
A1 = "NO"
A2 = new charges on form / 100
A3 = rst!Balance + A2
select count(*) from table receipts where account number = rst!account number and month = currentmonth and year = current year
if count > 10 then
goto VBSTOP
else
CONTINUE
select * from table seller where account number = rst!account number
if found
A4 = "YES"
else
A4 = "NO"
insert into table ledger (Account number, Account name, A1, A3, A4, Charges)
insert into table Charges (Account number, Account name, Charges)
insert into table Receipts (Account number, Account name, Charges, Receipt Number)
update table purchase (update purchaseno = purchaseno + 1 where account number = rst!account number
rst.MoveNext
loop
............................................... .................................................. ..........
这个代码需要6个多小时才能完成,因为客户端拥有一个非常大的数据库,我真诚地寻求帮助来解决我的DO .... UNTIL循环问题。有没有办法优化这些代码并消除do until语句或使其运行速度非常快?
我衷心感谢所有帮助。
答案 0 :(得分:4)
几点建议:
我没有代码给你。我本来会评论,但我没有获得这种特权。