質問するログイン新規登録

回答編集履歴

2

追記

2016/09/22 05:16

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -13,6 +13,11 @@
13
13
 
14
14
  この二つが可能ならば上記を実施するだけでパフォーマンス的にかなり有利となるように思います。
15
15
 
16
+ 特にMAX、MINなどの極値を得る集計関数は、
17
+ インデックスを定義しているとそれをそのまま利用してくれるため、
18
+ かなりコストを抑えることが可能です。
19
+ (インデックス自体が基本的にソート済のため)
20
+
16
21
  以下は蛇足となります。
17
22
  カラム数が多いテーブルならまだ良いのですが、
18
23
  カラムはそこそこしかなくインデックスの数だけ増えてくると、

1

誤字修正

2016/09/22 05:16

投稿

Panzer_vor
Panzer_vor

スコア1636

answer CHANGED
@@ -1,15 +1,15 @@
1
1
  実際に実行計画を見ないと確証はありませんが、
2
2
  [こちらのQA](http://stackoverflow.com/questions/2158274/the-faster-of-two-sql-queries-sort-and-select-top-1-or-select-max)によるとMAXもTOPもパフォーマンス的差異はないか、
3
- むしろインデックスが定義されていないケースでは実行速度が落ちる可能性もあります。
3
+ むしろインデックスが定義されていないケースではTOPの方が実行速度が落ちる可能性もあります。
4
4
  [比較検証しているサイト](http://blogs.wankuma.com/kaya/archive/2006/10/17/41425.aspx)があったので参考までに。
5
5
 
6
6
 
7
- ですので根本的に改善すべきはインデックスの設定となりそうです。
7
+ ですので根本的に改善すべきはインデックスの設定となりそうです。
8
8
  (質問でおっしゃっている7つ設定したインデックスの中に重複があればすみません・・・)
9
9
 
10
10
  提示していただいているSQLのみに焦点を当てると、
11
- - リストDATATYPE、PERIOD、POINTに対しての複合インデックスを付与
11
+ - DATATYPE、PERIOD、POINTに対しての複合インデックスを付与
12
- - リスト日付のカラムに対してもインデックスを付与
12
+ - 日付のカラムに対してもインデックスを付与
13
13
 
14
14
  この二つが可能ならば上記を実施するだけでパフォーマンス的にかなり有利となるように思います。
15
15