サイトアイコン SE日記

インデックスを高速に作成・再構築する方法


ここでは、インデックスを高速に作成・再構築する方法を紹介します。

通常のSQLと同様に、インデックスの作成や再構築も、ORACLEのパラレル実行を使うことが出来ます。パラレル実行することで並列で処理実行されるので、通常よりも速く、作成・再構築することが出来ます。

パラレル実行する際には、いくつか方法があります。
セッション単位にパラレル実行するモードに変更してSQLを実行する方法とcreate index,alter indexの構文でパラレル実行する方法です。

create index,alter indexの場合はさらに、nologgingを指定することで、REDOログやUNDOデータを生成しないようになるため、一層速くなります。

※ちなみに、パラレル実行で作成・再構築したインデックスは、属性がパラレルに変わります。そのため通常は、alter indexでパラレル状態を解除します。

セッション単位にパラレル実行モードに変更する方法

alter session force parallel DDL parallel 4;

インデックスの作成・再構築でパラレルを有効にする方法

–作成
create index ix_table1 on table1(col1) nologging parallel 4;

–再構築
alter index ix_table1 rebuild nologging parallel 4;

インデックスのパラレルを解除する方法

alter index ix_table1 noparallel;
※alter index ix_table1 parallel 1でも同じ結果になるかもです。確認してませんが。

最後に

最後までお読みいただきありがとうございます。

SQLのチューニングについては、「SELECT文のSQLチューニング方法まとめ」で詳しく解説していますので、ぜひ参考にしてください。

モバイルバージョンを終了