我有一个问题,有关最快的方式执行一个SQL Server查询表,TheTable,具有以下字段:TimeStamp,Col1,Col2,Col3,Col4
我不维护数据库,我只能访问它。我需要执行10个计算类似于:在SQL中执行多次计算的平均时间的最快方法?
Col2*Col3 + 5
5*POWER(Col3,7) + 4*POWER(Col2,6) + 3*POWER(Col1,5)
然后我必须找到使用从选定的日数据计算结果的AVG和MAX(有8个月在数据库中的数据,到目前为止) 。由于数据每0.1秒采样一次,因此每次计算需要864000行。我想确保查询尽可能快地运行。有没有比这更好的方法:
SELECT AVG(Col2*Col3 + 5),
AVG(5*POWER(Col3,7) + 4*POWER(Col2,6) + 3*POWER(Col1,5)),
MAX(Col2*Col3 + 5),
MAX(5*POWER(Col3,7) + 4*POWER(Col2,6) + 3*POWER(Col1,5))
FROM TheTable
WHERE TimeStamp >= '2010-08-31 00:00:00:000'
AND TimeStamp < '2010-09-01 00:00:00:000'
谢谢!
我是一名SQL新手 - 这些列会成为表的永久部分吗?我应该提到这是一个我不保留的数据库。 – KAE 2010-09-20 17:01:13
是的,他们会的。看到我的第二个建议。 – RedFilter 2010-09-20 17:02:00
非常感谢。一旦我学会了如何制作索引视图,我将发布代码。 – KAE 2010-09-20 17:06:29