ORACLE操作

[ORACLE] 表の断片化を解消する(ALTER TABLE ~ SHRINK SPACE)

投稿日:2022年2月28日 更新日:

テーブルにデータのINSERTとDELETEなどを繰り返すと、
表の領域が断片化してディスク容量を圧迫してきます。

こうした場合、ALTER TABLE ~ SHRINK SPACE句を使うと
簡単に断片化を解消することができます。

構文

(表の断片化を解消する構文)
ALTER TABLE <テーブル名> SHRINK SPACE;

サンプル

例)mst_userテーブルの断片化を解消する

実行例
SQL> ALTER TABLE mst_user SHRINK SPACE; 表が変更されました。

ORA-10636が発生する場合は、ROW MOVEMENTをENABLEに設定する必要があります。詳しくは以下記事をご覧ください。

[ORACLE] パーティション表でパーティションの移動を伴う更新を許可/不許可にする(ROW MOVEMENT)

解説

  • SHRINK SPACEで断片化を解消すると、HighWaterMarkも下がります。
  • 同じように断片化を解消する方法として「ALTER TABLE ~ MOVE」句を使用する方法もありますが、SHRINK SPACEだとオンライン中にも実行できるメリットがあります。
  • CLOBやBLOB列を含むテーブルの場合は、SHRINK SPACEは使用できません。

関連記事


スポンサーリンク

スポンサーリンク

-ORACLE操作

執筆者:



comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

スポンサーリンク