0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

テーブルの再構築後に ORA-01502 エラー発生

Posted at

はじめに

処理遅延の対策としてテーブルの断片化が怪しいと目星を付け、テーブル解消化のために「ALTER TABLE MOVE」コマンドを実行したら、その後にエラーが発生したおはなし。

参考:表が断片化したときの対処方法 / 表の再編成方法
https://cosol.jp/knowledge/knowledge_post/d3_maintenance_table/

エラー内容

ORA-01502: 索引'表領域名.インデックス名'またはそのパーティションが使用不可の状態です。

原因と対策

「ALTER TABLE MOVE」コマンドにてテーブルを再構築すると対象テーブルのインデックスが使用不可(UNUSABLE)になってしまうのです(^L^)

インデックス状態確認用SQL
SELECT INDEX_NAME, STATUS FROM USER_INDEXES
WHERE TABLE_NAME = 'テーブル名'
ORDER BY INDEX_NAME

私のケースではインデックスが使用不可の状態で該当テーブルへの登録(INSERT)が走り、PKが使用出来ず冒頭のエラーにつながってしまいました。
対策として該当のインデックスを再構築することで事なきを得ましたわん。

インデックス再構築SQL
ALTER INDEX インデックス名 REBUILD;
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?