からくりブログ

株式会社からくり社員のブログです

備忘録: IndexがリンクしているTableの再作成時の注意点


Oracle を使い始めて約1年半。
まだまだ未熟なため、結構エラーを出している。
たまにやらかして、同じエラーを出すこともあるので、
備忘録の意味も含めて、対処法を記述していきます。
(まあ、検索すればすぐ見つかりますがね。。。)

Index がリンクしている Table レコード削除でのミス

実際に使用している Table ではあまり起きないと思いますが、
(起きたら結構問題なんですが!)
テスト環境を使用していると、Tableデータをある時間の
データに変更するってことがあります。

手順は、現在のTableデータをexportした後、
Deleteして、Importするという形になると思います。

ただ、データが肥大化しすぎて、
容量を圧迫している場合もあります。

そういう時は、
Table 自体を削除(alter table)して再作成すると、
使用領域を解放して、使用サイズが小さくなります。

通常、決まったシェルを使用して実施するから、
エラー発生を気にすることはないんですが、
(エラーが発生するマクロは修正されるか、使用しないから。。。)
一つだけ変更するときは、手動で変更することもあります。

その時に見落としたことがあるのが
リンクしている Index です。

再作成するということは Index が崩れるというわけで、
ちゃんと更新しておかないと参照したときに
エラー(ORA-01502だったかな?)が発生します。

Index を更新する際のSQL文は下記の通りです。

alter index (Index名) rebuild

IndexがリンクしているTableを
再作成する際は忘れずに実行しましょう。


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>