如何提高以下查询的性能:
update t
set t.recent_5_min = (select MIN(value)
from t t2
where t2.date between t.date - 5 and t.date - 1)
t
拥有:
- 最近_5_min - 钱为空 - 当然它是可以为空的,因为它只会被工作占用。
- 价值 - 金钱非空
- date - int, PK 与聚集索引。这是表中唯一的索引。
t
有 900K 记录,统计数据是最新的,查询需要永远运行。
更新 1 - 我最初发布的查询生成的示例数据。
前:
date value recent_5_min
----------- --------------------- ---------------------
1 10.00 NULL
2 19.00 NULL
3 2.00 NULL
4 9.00 NULL
5 11.00 NULL
后:
date value recent_5_min
----------- --------------------- ---------------------
1 10.00 NULL
2 19.00 10.00
3 2.00 10.00
4 9.00 2.00
5 11.00 2.00