我有一個問題,有關最快的方式執行一個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