次のクエリのパフォーマンスを向上させるにはどうすればよいですか:
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
もっている:
- recent_5_min - money null -もちろん null 可能です。これはジョブによってのみ入力されるためです。
- value - お金、null 以外
- 日付 - 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