ORACLEMASTER 備忘録6(8/11)
続き
表領域の削除
表領域を削除すると、表領域に格納されているオブジェクトや、データディクショナリに格納されているオブジェクトの定義も削除される。
一方、対応するデータファイルについては、EM Expressを使用した場合はデフォルトで削除される設定になっているが、SQL文を使用した場合はデフォルトでは削除されない。
EM Expressを使用した表領域の削除
- EM Expressの「記憶域」メニューから「表領域」を選択する。
- 「表領域」ページが表示される。削除する表領域を選択して、「削除」ボタンをクリック。
- 「表領域の削除」ページが表示される。表示されるオプションから適切なものを選択して、「OK」ボタンをクリックする。デフォルトで「データファイルの削除」にチェックが入っていることに注意する。
- 確認メッセージが表示され、削除された表領域に表示されなくなる。
SQL文を使用した表領域の削除
SQL文を使用して表領域を削除するには、DROP TABLESPACE文を使用する。から出ない表領域を内部のセグメントを含めて削除する場合には「INCLUDING CONTENTS」を指定する。
なお、先述したように、SQL文で表領域を削除する場合、デフォルトでは“対応するデータファイルは削除されない”。データファイルを削除するには「AND DATAFILES」オプションを使用するか、OSコマンドを使用する必要がある。
・表領域の削除
DROP TABLESPACE 表領域名 INCLUDING CONTENTS;
表領域の削除と同時にデータファイルを削除する場合は次のコマンドを実行する。
・表領域の削除(データファイルも削除)
DROP TABLESPACE 表領域名INCLUDING CONTENTS AND DATAFILES;
なお、表領域を削除する際に「アクティブセグメント」(削除しようとしている表領域の内部の表が現在使用されている状態)が含まれている場合は、“表領域の削除することはできない”。表領域の削除する前にその表領域をオフラインすることが推薦される。
・表領域のオフライン化
ALTER TABLESPACE表領域名 OFFLINE;
オフラインでのセグメント縮小
通常の運用時には、表領域内のセグメントに対して「DML操作(データ挿入、更新、削除)」が行われるが、DML操作を継続的に行うと、時間とともにエクステント内に「使用しているブロック」と「空き領域のデータブロック」が混在し、データが断片化していき、部分的な“未使用領域”が発生する。
断片化している小さな領域を放置すると、パフォーマンスに影響が出る恐れがあるので、「オンラインでのセグメント縮小」を行い、断片化しているデータを統合する。この作業を行うと表領域の空き領域を増やすことができる。