2007年03月15日

Oracleの表領域

Oracleの表領域は2種類あり;
1.SYSTEM表領域;
2.非SYSTEM表領域;

SYSTEM表領域にはSYSユーザーが所有するデータ・ディクショナリが格納されています。
そのため、ユーザー・データは非SYSTEM表領域に格納した方が良いです。

データ・ディクショナリについて、
ユーザーがSELECT文を使って、データ・ディクショナリ・ビューを検索できます。
データ・ディクショナリ・ビューは主に以下の4種類あり:
1.USER_xxx
2.ALL_xxx
3.DBA_xxx
4.V$xxx

表領域を使い分けると、安定性やパフォーマンスにさまざまなメリットがあります。
1.表セグメントと索引セグメントの表領域を分けて異なるデバイスに配置すると、I/O 衝突が減少し、パフォーマンスが向上します。
2.UNDO セグメントとデータ・セグメントの表領域を分けて異なるデバイスに配置すると、媒体障害による永続的なデータ損失が避けられます。
3.一時セグメントは、永続表領域に作成することもできます。ただし、一時セグメントは、取得/解放が頻繁に行われるため、空き領域が大きく断片化することがあります。したがって、専用の表領域を用意すべきです。
4.ユーザーを作成するときに、テンポラリ表領域 に一時表領域を指定すると、テンポラリ表領域内に 1 つのソート・セグメントが作成され、ソート処理時に使用されます。ソート・セグメントは、Oracle 起動後、ソートに一時表領域を使う文が最初に実行されるときに作成され、Oracle 停止時に解放されます。したがって、ソート処理を必要とするエクステントの取得/解放の頻度が減少し、パフォーマンスが向上します。

表領域の作成法:
CREATE TABLESPACE [表領域名] DATAFILE
'[データ・ファイル名 フルパスで記述]' SIZE [サイズ],
... , (複数個可)
'[データ・ファイル名 フルパスで記述]' SIZE [サイズ]
デフォルト記憶領域パラメータ(TEMPORARY/AUTOEXTEND ON NEXT 1M MAXSIZE 50M(UNLIMITED)/...);

表領域データ・ファイルの追加
ALTER TABLESPACE 表領域名 ADD DATAFILE
データ・ファイル名 SIZE サイズ;

表領域オンライン/オフライン
ALTER TABLESPACE 表領域名 ONLINE;
ALTER TABLESPACE 表領域名 OFFLINE;

データファイルの再配置
オフライン、物理ファイルのコピー後に
ALTER TABLESPACE 表領域名 RENAME DATAFILE
旧データ・ファイル名 TO 新データ・ファイル名;

表領域の削除
オフラインした後、
DROP TABLESPACE 表領域名;
注意:物理データファイルは手動で削除しなければなりません。

表領域内オブジェクトも一緒に削除する場合、
DROP TABLESPACE 表領域名
INCLUDING CONTENTS;

FOREIGN KEY制約あり、一緒に削除する場合、
DROP TABLESPACE 表領域名
INCLUDING CONTENTS
CASCADE CONSTRAINTS;

データ・ディクショナリ・ビューより、表領域情報の確認
表領域に関連するデータ・ディクショナリ・ビューは以下の2種類あります。
1.DBA_TABLESPACES;
2.DBA_DATA_FILES

trackbacks

trackbackURL:

comments

comment form

(D.Z.Memo にはじめてコメントされる場合、不適切なコメントを防止するため、掲載前に管理者が内容を確認しています。適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

comment form