我有一個表,如下所示:如果需要逐行計算,如何提高選擇查詢的性能?
- PK,
- 日期,
- 小時(0-23),
- 事務ID(外鍵),
- 價格,
- 卷
有3年的數據(365x24x3 = 26280小時),爲每筆交易。而且,我現在有5000個(並且在不斷增長)。
我想每個小時(每26280)來計算加權平均(SUM(P_Transaction1xV_Transaction1 + P_Transaction2xV_Transaction2 + ... + P_Transaction5000xV_Transaction5000)/ SUM(V_Transaction1 + V_Transaction2 + ... + V_Transaction5000)。
我們嘗試下面的選項,但不能管理以減少運行時間顯著
選項1:
數據表: PK 日期 事務ID(外鍵) 價格1,Price2,...,Price24 VOLUME1,卷2,... Volume24
索引列:交易編號,使用日期 存儲過程。
選項2:
數據表1: PK 日期 小時(0-23) 事務ID(外鍵) 卷
數據表2: PK 日期 小時(0-23) 交易ID(外鍵) 價格
索引列:事務ID,日期,小時 使用存儲過程。
選項3: 正如我在開始時解釋的那樣。
我想知道是否有一個更好的方法,只要數據模型,索引或...等等。爲了儘可能提高性能。
選項1,24個價格欄和24個卷欄是一團糟。躲開它! – jarlh
你正在使用哪些DBMS!? – CeOnSql
Microsoft SQL Server 2008企業版(64位) – hedeDN