テーブル arg_rec には、テスト マシンで 800K 行が含まれています。通常、このテーブルには 15M 行以上が保持されます。次のクエリを実行したい:
SELECT STE_ID, PNT_NO, YR, MN, AVG(AVR_WS) AS AVR_WS, SUM(AVR_PW) FROM arg_rec GROUP BY STE_ID, PNT_NO, YR, MN;
このクエリは、風力タービン データから毎日の平均風速と総電力を返します。私のテスト マシンでは、主キー列のサブセットにすぎない , , ,STE_ID
のPNT_NO
結合インデックスを使用して、このクエリを 10 分間実行するとタイムアウトになります。インデックスがない場合、クエリは数分後に完了します。YR
MN
サーバーの微調整に加えて、次のようなこの問題を処理する他の方法についても知りたいです。
- このクエリに基づいてビューを作成し、結果をキャッシュすることは可能ですか?
- YR、MN、DY、HR、MI、SC がレコードのタイムスタンプの年、月、日などのフィールドに対応するという事実をカプセル化する、より高度なインデックス作成機能はありますか?
- アプリケーションのビジネス層を使用してデータを複製したほうがよいでしょうか?