Oracleの表領域についてまとめてみた

◼︎ 目次

  1. 表領域について
  2. 表領域の作成方法について
  3. 表領域の確認方法

Oracle勉強シリーズ

◼︎ 表領域について

表領域は表や索引などのデータベースのオブジェクトを格納する入れ物と考えられる
各表領域に対して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;

Be First to Comment

コメントを残す

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