◼︎ 概要
Oracle勉強シリーズ
- Oracleの表領域についてまとめてみた
- Oracleのパーティションについてまとめてみた
- Oracle ダイレクトロードインサートについて
- OracleのSEQUENCEについて
- Oracleのパーティションインデックスについて
- Oracleのフェイルオーバーについて
- Oracle11gから12cへの移行の注意点
◼︎ 表領域について
表領域は表や索引などのデータベースのオブジェクトを格納する入れ物と考えられる
各表領域に対して1つ以上のデータファイルが作成される
データベースでは表(データ)を論理的には表領域に格納し、物理的には表領域に関連付けられたデータファイルに格納する
用語 | 説明 |
表領域 |
データベース内のオブジェクトをグループ化して格納するための領域
表領域に対して1つ以上のデータファイルが作成される
また表領域には複数のセグメントを格納できる
|
セグメント |
表や索引、UNDOセグメントなどのデータベースオブジェクトによって使用される領域
1つのオブジェクトが1つのセグメントになる
セグメントには、データの種類によっていろいろなタイプがある(表セグメント、索引セグメントなど)
同じ表領域内であれば複数のデータファイルに跨ることも可能
セグメントの領域はエクステント単位で割り当てられ、割り当てられたエクステントが満杯になったら
そのセグメントに対して新しいエクステントが割り当てられる
|
エクステント |
1回の割り当てで取得される特定数の連続したデータブロック
エクステントのサイズは表領域の作成時に指定できる
1つのエクステントはデータファイルを跨ぐことはできない
|
データブロック |
I/Oの最小単位
データブロックにはデータが格納される
オブジェクトが表であれば1つのデータブロックに複数の行を格納できる
|
◼︎ 表領域の作成方法について
CREATE TABLESPACE 表領域名> [DATAFILE データファイル名 [SIZE ファイルサイズ]] [AUTOEXTEND {OFF | ON NEXT サイズ [MAXSIZE {UNLIMITED | サイズ}]}] [MINIMUM EXTENT エクステントサイズ] [BLOCKSIZE ブロックサイズ] [LOGGING | NOLOGGING] [ONLINE | OFFLINE] [PERMANENT | TEMPORARY] [SEGMENT SPACE MANAGEMENT [MANUAL | AUTO]] ;
作成例
//表領域を8Gで作って、同じサイズのデータファイルをもう一本作るときの例 CREATE TABLESPACE SQLBENCHMARK DATAFILE '+DATA' SIZE 8G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; ALTER TABLESPACE SQLBENCHMARK ADD DATAFILE '+DATA' SIZE 8G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
◼︎ 表領域の確認方法
USER_TABLESPACESに情報があるっぽい
(ログインしているユーザーがアクセスできる表領域を示します)
SQL> select * from USER_TABLESPACES;
コメントを書く
コメント一覧