こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Oracle インデックスについて

オラクルを勉強中の身です。
以下の件で、困っております。ご教授ください。

インデックスの容量が膨れ上がってしまい、現時点で2GB以上あるインデックスが、50個近くあり、今後も拡大が懸念され困っております。
(最大で30GBのが数個あります。)
上司に進言したいと考えておりますが、容量が膨れ上がると、どのような影響があるのか、対策をご教示ください。
(参考サイトがあれば教えてください。)
尚、テーブルについても、2GB以上の数量も同じぐらいあります。
現在、特に目立ったパフォーマンスの劣化がありません。(実際劣化はあるのでしょうが、認識していないのが現状です。)

ちなみに、Enterpriseへのバージョンアップは考えておりません。

使用しているオラクル環境は以下になります。
Oracle Database 10g Release 10.2
Standard Edition

以上、宜しくお願い致します。

投稿日時 - 2009-06-03 17:54:05

QNo.5014032

困ってます

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

1.
DELETEが発生するテーブルの場合、インデックスに空きスロットができて無駄に膨れ上がっている可能性もあります。
DELETEや、INDEX列のUPDATEがあるテーブルのINDEXはANALYZEして無駄領域を検査してみてください。
INDEXのREBUILDで無駄領域が解消され、アクセスも早くなる場合があります。

2.
一定期間INDEXのMONITORINGをかけて、使われてなさそうなものがあれば削除しましょう。

3.
インデックスがうまく使われているおかげで、データ量が増えても性能にあまり影響がないのかも知れません。テーブルフルアクセスと違い、データ量が増えても少ない検索範囲でデータ参照するためのものですからね。
しかし、あまりデータ量が増えすぎてキャッシュ効率が落ちだすと性能に影響が出始めるかも知れません。
システム寿命の年数の運用に耐えるだけのメモリとディスクを確保していないのであれば、
業務上、もう必要ないデータを別の場所に移す・削除するようなデータアーカイブ・クリーニング運用を行って、データが際限なく増えないようにしないといけないでしょうね。

投稿日時 - 2009-06-04 23:20:03

お礼

お礼が遅くなりました。
回答いただき有難うございました。

ご教示いただいたことを、行えるよう検討していきます。

投稿日時 - 2009-06-08 18:37:05

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

索引のサイズ見積もりをしてみて過大であれば再作成を検討してみればよいと思います。適切なサイズであれば問題ないかと。

9i時代のものですが以下の資料はよくまとまっています。
http://otndnld.oracle.co.jp/skillup/oracle9i/4_1/index.html

索引の断片化が生じるとパフォーマンスへの影響はあるかと思います。

投稿日時 - 2009-06-04 12:22:27

お礼

回答有難うございます。
容量見積サービスも利用し、サイズ見積もりしてみます。

サイズが大きいと再作成するのも時間がかかりそうですね。

投稿日時 - 2009-06-04 13:33:39

ANo.1

 テーブルへのレコード追加に伴って、インデックスも増加すること
自体は自然なことなので、特別視する必要は無いと思います。

 しかし、インデックスの増加によってディスクの空き容量の心配を
しなければならない状況であるなら、物理的な対応を検討しなければ
ならないと思います。


 

投稿日時 - 2009-06-03 18:20:19

お礼

回答いただき有難うございます。
ディスク容量に関しても注視していきます。

投稿日時 - 2009-06-04 13:32:56

あなたにオススメの質問