Oracleのテーブルが遅い?テーブルを再構築するSQL【MOVE】

テーブルを再構築する

Oracleが遅い原因

Oracleのテーブルの検索が遅くて困っているときは再構築すると解消されるかもしれません。長い期間テーブルの更新・削除を繰り返すとどうしても重たく遅くなってきますからね。

原因としては、Oracle内部行移行がおきたりHWMがあがりっぱなしが考えられます。なので行移行を解消し、HWMをさげて速度アップさせます。

Oracleの行連鎖と行移行の違いは?

それを解消するために、テーブルを再構築します。再構築するには「ALTER TABLE ~ MOVE」を使います。

テーブルを再構築するSQL

-- table1を再構築する
ALTER TABLE table1 MOVE;

ここでは、テーブル「table1」を再構築しました。ただしテーブルを再構築すると、このテーブルで使用されているインデックスが無効になってしまいます。よってインデックスを再作成する必要があります。

インデックスを再作成するSQL

-- インデックスを再作成する
ALTER INDEX index1 REBUILD;

これでインデックスindex1を再作成して使える状態になりました。テーブルが再構築され、インデックスも再構築されました。検索速度が向上しているか確認してみてください。

以上、Oracleのテーブルを再構築するSQLでした。

コメント