ORACLE表の断片化を解消する3つの方法

 テーブルの断片化解消の方法をメモしておきます。

1.exp/imp

  ※オプションによって様々な範囲でexp/imp可能です。

  ・exp user1/pass
  ・imp user1/pass


OracleMasterGold12cに一ヵ月で合格した勉強方法




2.ALTER TABLE MOVEによる再構築

  コマンドとしては一番簡単です。
  ・テーブルのみ再構築

   ALTER TABLE table1 MOVE;



  ・パーティション表の場合

   ALTER TABLE table1 MOVE PARTITION;



  ・INDEXも同時に再構築する場合

   ALTER TABLE table1 MOVEUPDATE INDEXES;”



  ・オンラインで実行する場合 ※12cから

   ALTER TABLE table1 MOVE ONLINE;


OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法




 3.オンライン表再定義

  手間がかかりますが、11gでもオンラインメンテナンスが可能です。コマンド実行中にINSERTやUPDATEを実行しましたが問題ありませんでした。しかし、実行している実績がなく、結局、本番環境では使いませんでした。※VPDを利用している場合は実行できません。※12cからはパラメータを追加することでVPDを利用していても実行できます。
 ・事前準備
  断片化解消したいテーブルと同じ構造の仮テーブルを用意しておきます。
 ・初期処理

  begin
    DBMS_REDEFINITION.START_REDEF_TABLE(
     uname=>’user1′
     ,orig_table=>’table1′
     ,int_table=>’table1_KARI’
     ,options_flag=>dbms_redefinition.cons_use_pk
    );
   end;



 ・仮テーブルへのコピー処理

   declare
    num_errors PLS_INTEGER;
   begin
    DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS(
     uname=>’user1′
     ,orig_table=>’table1′
     ,int_table=>’table1_KARI’
     ,copy_indexes=>dbms_redefinition.cons_orig_params
     ,num_errors=>num_errors);
   end;



 ・仮テーブルと本テーブルを入れ替え

   begin
    DBMS_REDEFINITION.FINISH_REDEF_TABLE(
     uname=>’user1′
     ,orig_table=>’table1′
     ,int_table=>’table1_KARI’);
   end;



 ・元々本テーブルだったものを削除

   drop table table1_KARI;
 



>>おすすめのORACLE参考書まとめ






OracleDBのチューニング勉強方法

【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法