ADO中SQL语句执行超时(求58个字段的全年平均值)(100分)

  • 主题发起人 主题发起人 DickWu
  • 开始时间 开始时间
D

DickWu

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi中我用ADO取MS SQL2000 personal版数据库中的数据平均值,但一直超时。
数据库中的数据是每隔10秒insert保存一次,全年的数据量很大,
SQL语句是:
select avg(a1),avg(a2)...............,avg(a58),sum(a1),sum(a2)
from Database1
where (recorddatetime>=setdatatime1)
and (recorddatetime<=setdatetime2)
每次执行以上语句,总是超时。
各位大侠帮帮我吧
我的操作系统平台是win98SE,设置ADOConnection的CommandTimeout和ConnectTimeOut
也是这样。
 
建议:
1、60个字段分成6-10个Sql;
2、为recorddatetime建索引;
3、建临时表,把目前的Sql分成两步,
第一步,执行一个Sql求平均值,把结果写到临时表(运算完全在数据库端);
第二步,执行另一个Sql,直接从临时表中取值。
 
Set Timeout 0 (0 还是 -1 忘了),具体语法可以查 SQL Server Books On Line 。
在执行 Select 之前首先执行它,解除时间限制。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
940
SUNSTONE的Delphi笔记
S
I
回复
0
查看
855
import
I
I
回复
0
查看
898
import
I
后退
顶部