DELPHI高手請進,萬分火急的問題!
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('SELECT * FROM '+accfile );
ADOQuery1.Open ;
jl1:=ADOQuery1.RecordCount ;
for i:=1 to jl1 do
begin
strtran:=ADOQuery1.fieldbyname('ar_tran').asstring;
ADOStoredProc1.ProcedureName :='Sp_acct16b';
ADOStoredProc1.Parameters.Clear ;
ADOStoredProc1.Parameters.Refresh ;
ADOStoredProc1.Parameters.ParamByName('@artran').Value :=trim(strtran);
ADOStoredProc1.Parameters.ParamByName('@accfile').Value :=trim(accfile);
ADOStoredProc1.Prepared ;
ADOStoredProc1.Open ;
jl2:=ADOStoredProc1.RecordCount;
for j:=1 to jl2 do
begin
if (ADOStoredProc1.fieldbyname('vouch_d').asfloat <=fsetdate) Then
begin
fsettle:=fsettle+ADOStoredProc1.fieldbyname('payamnt').asfloat;
end;
ADOStoredProc1.Next;
end;
ADOQuery1.Next;
End;
SQL簡單的存儲過程如下:
ALTER procedure [dbo].[Sp_acct16b]
@artran char(15),
@accfile varchar(15)
as
begin
exec('select vouch_d,payamnt from '+@accfile+' where ar_tran=''+@artran+''')
end
以上數據庫(ACCFILE)數據庫裡面只有5000條記錄,而且只有三個字段,為什麼DELPHI用以上查詢語句執行一次後,需要15秒左右這么久的時間才執行完呢?我已將數據庫的AR_TRAN字段做聚集索引.我使用的是SQL SERVER 2005企業版+WINDOWS 2008 R2,硬件是16G內存加至強CPU,硬件上面應該沒問題...請問各位高手是否可以讓以上程序查詢時間縮短至2秒左右執行完成呢?已經發了很多個論壇,都無人可以解決,希望在這CSDN高手如雲的地方有奇跡出現,跪求了...