-PR-
  • すぐに回答を!
  • 質問No.7842465
解決
済み

INDEXの無効化

  • 閲覧数6774
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 92% (26/28)

Oracle11gを使用しています。
制約と同じようにINDEXも無効化することは出来るのでしょうか。

テーブル名と、フラグ(無効化/有効化)を引数として、制約、INDEXの無効化、有効化
を行うプログラムを作成したいと考えています。

制約は、「ALTER TARBLE テーブル名 DISABLE(又はENABLE ) CONSTRAINT 制約名」
にて無効化、有効化することが出来ますが、INDEXも同じように無効化、有効化することは
出来るのでしょうか?

よろしくお願いします。
  • 回答数1
  • 気になる数0

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

  • 回答No.1
レベル12

ベストアンサー率 55% (405/735)

▼以下のSQLで無効化できます。

alter index ind_test invisible;
alter index ind_test unusage;

有効化は以下です。

alter index ind_test rebuild;

invisibleでオプティマイザから索引が見えなくなります。
unusageでDML発行時の索引の更新を抑止します。
有効化するときはテーブルと同期がとれていない状態なので
索引を再構築する必要があります。

▼無効化している間のDMLで索引も更新されても問題ない場合はunusageのみでOKです。

alter index ind_test unusage;

有効化は以下です。

alter index ind_test usable;

こちらの方が手軽ですが、大量データを入れる場合の性能改善はありません。
索引がない場合のオプティマイザの動作確認に使うくらいでしょうか。
お礼コメント
uemitu

お礼率 92% (26/28)

お礼が遅れてしまい申し訳ありません。

御回答ありがとうございました。

作成しようとしているプログラムは、大量データの登録前後に実行する想定のため教えていただいた下記コマンドを使用させていただきます。

> 無効化
> alter index ind_test invisible;
> alter index ind_test unusage;
>
> 有効化
> alter index ind_test rebuild;

ありがとうございました。
投稿日時 - 2012-12-16 02:15:55
  • ありがとう数0
-PR-
-PR-
  • 回答数1
  • 気になる数0
このQ&Aのテーマ
このQ&Aで解決しましたか?

関連するQ&A

-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ