我有一个表,如下所示:如果需要逐行计算,如何提高选择查询的性能?
- 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