• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:表領域のパーティション分割時のINDEXについて)

表領域のパーティション分割時のINDEXについて

このQ&Aのポイント
  • 表領域のパーティション分割時のINDEXについて質問があります。
  • 表Aの領域をパーティション分割して、項目BのハッシュでグローバルINDEXを作成する予定ですが、検索時に項目B&項目Cのwhere句で効率よく領域を選択できるか悩んでいます。
  • 表Aのレコード数が8000万程度で、情報不足があるかもしれませんが、ご指摘いただければ幸いです。

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

  • ベストアンサー
  • uresiiwa
  • ベストアンサー率45% (49/107)
回答No.1

項目Bがパーティションキーなので、パーティションプルーニングによる絞込みが効きますね。 よって、項目Cのローカルインデックスが一番効率が良くなると思います。 B+Cのグローバルインデックスでも遜色ないアクセス速度が出ますが、インデックス長が大きくなる分データサイズがより大きくなって、キャッシュもより多く消費するのと、パーティション削除などのパーティションメンテナンスをする場合にグローバルインデックスだとインデックスリビルドが必要となるので、この場合、Cローカルが勝ります。 しかし、試せないというのはよろしくないですね。 本番環境以外は貧弱すぎてデータが入らない、などでしょうか? Oracleはパフォーマンス面では理論やサポートの回答だけではなかなか判断がつかないことが多いため、かならず実践での裏づけを得て対処を選択すべきと考えています。 サーバに入れられないのであれば、開発用PCにエクスプレスエディションを入れるなりして、トレースをかけて実際のブロックアクセス数を確認したいですね。

sekidoutyokka
質問者

お礼

ご回答およびデータサイズ・キャッシュに関するご指摘ありがとうございます。 確かにメンテナンスなどを考えると、ローカルインデックス:項目Cとした方が良さそうです。 >開発用PCにエクスプレスエディションを入れるなりして、 その手がありましたね。 頭からすっぽり抜けていました。 どこまで擬似環境が作成できるかわかりませんが、 ご回答のパターン等を擬似環境で実測してみます。 助かりました。 本当にありがとうござます。

関連するQ&A