• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最適なインデックス作成)

最適なインデックス作成

このQ&Aのポイント
  • 下記のSQLを最適化するために、適切なインデックスを作成する方法を検討しています。
  • インデックスの作成にあたって、複合インデックスと個別インデックスのどちらが最適か悩んでいます。
  • 個別インデックスの場合、番号単位でインデックスを作成することが考えられます。

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

結合があるのでA.COL1へのインデクスが使われるであろうことはまず間違いないですが、それ以外のインデクスが同時に使われるかどうかはデータベースシステムの機能とアクセスプラン次第かと思います。 ですので IND(A.COL3,A.COL4) や IND(A.COL6) が有効になる局面というのがあるとは限りません。 また IND(A.COL1,A.COL2,A.COL3,A.COL4,A.COL6) や IND(A.COL1,A.COL2) はほとんどの場合で有効になるでしょうけれども、それが IND(A.COL1) と比較してより優れているかどうかは、データの内容(偏り具合)とデータベースシステムの機能、アクセスプラン次第です。 またインデクスを大きくすればそれだけINSERT/DELETE/UPDATEが遅くなりますから、INSERT/DELETE/UPDATEとSELECTの実行頻度の割合によっては、SELECTの性能を落とすことになってもインデクスを小さくしたほうが全体の性能は向上する場合もあります。 (なお、おそらく考慮されているとは思いますが、IND(B.COL1)はあったほうがよいです。場合によってはIND(B.COL1,B.COL5)のほうが性能が高くなります。)

noname#17136
質問者

お礼

ありがとうございました。 設計となると難しいですね。。また勉強しなおします!。

関連するQ&A