ここでは、インデックスを高速に作成・再構築する方法を紹介します。
通常の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;
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でも同じ結果になるかもです。確認してませんが。
※alter index ix_table1 parallel 1でも同じ結果になるかもです。確認してませんが。
最後に
最後までお読みいただきありがとうございます。
SQLのチューニングについては、「SELECT文のSQLチューニング方法まとめ」で詳しく解説していますので、ぜひ参考にしてください。