- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:最適なインデックス作成)
最適なインデックス作成
このQ&Aのポイント
- 下記のSQLを最適化するために、適切なインデックスを作成する方法を検討しています。
- インデックスの作成にあたって、複合インデックスと個別インデックスのどちらが最適か悩んでいます。
- 個別インデックスの場合、番号単位でインデックスを作成することが考えられます。
- みんなの回答 (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)のほうが性能が高くなります。)
お礼
ありがとうございました。 設計となると難しいですね。。また勉強しなおします!。