TOP


セグメント、エクステント、データブロックの管理

 

 

◎セグメントの種類と記憶領域パラメータの設定

セグメントとは、1つ以上のエクステントの集まりにより作成されるデータベースオブジェクトを意味する論理単位のこと

 

○セグメントの種類

 使用目的と性質の違いにより分類される。

 

セグメント名

内容

データセグメント

 

行データを格納するために使用される。

CREATE TABLE文により作成される。

 

索引セグメント

 

索引を作成したキー列の値とその物理アドレスを格納するために使用される。

CREATE INDEX文により作成される。

ロールバックセグメント

データや索引を変更する前に変更前の値を格納するために使用される。

CREATE ROLLBACK SEGMENT文によって作成される。

 

一時セグメント

 

大量データをソート処理するときに、中間値データを格納するために使用される。

Oracle Serverによって必要に応じて自動的に作成される。

 

      1つのオブジェクトに対して1つのセグメントが割当てられるので、“セグメント=オブジェクト”

      オブジェクトは、表領域中の複数のデータファイルにまたがって格納できる

 

○記憶領域パラメータの設定

記憶領域パラメータにより、セグメントを構成する各エクステントの大きさや個数を決定することができる。

)セグメントが表であったとき ⇒ CREATE TABLE文の中で指定する

     CREATE TABLE EMP

     (列名 属性、…)

     TABLESPACE users

     STORAGE(

     INITIAL  10M

     NEXT    10M        STORAGE

     MINEXTENTS   1      STORAGEでくくられたパラメータ = 記憶領域パラメータ

     MAXEXTENTS   10

);

 

 

パラメータ

内容

値の変更

INITIAL

NEXT

MINEXTENTS

MAXEXTENTS

PCTINCREASE

初期エクステントのサイズ

増分エクステントのサイズ

セグメント作成時のエクステントの割当数

セグメントに含められるエクステントの最大数

次に割当てるエクステントに対して増分する割合

変更できない

変更可能(最小値:1)

変更できない

変更可能

変更可能

)記憶領域パラメータの変更

  ALTER TABLE EMP (MAXEXTENTS unlimited)

 

記憶領域パラメータは、データベースシステムデフォルト、表領域、セグメントに設定できる。

STORAGE句の優先順位は・・・

セグメント > 表領域 > データベースシステムのデフォルト

      データベースシステムデフォルトの記憶領域パラメータ

INITIAL5DBブロック、NEXT5DBブロック、MINEXTENTS1

MAXEXTENTSDB_BLOCK_SIZE2Kの場合121

                 DB_BLOCK_SIZE4Kの場合245

 

 

◎セグメントに対するエクステントの割当と解放

 エクステントは、表や索引やロールバックセグメントを作成したり拡張したときに割当てられ、削除、変更、切り捨て、サイズ自動変更(ロールバックセグメントのみ)が行われると割当が解放される。

)セグメントにエクステントが割当てられる処理(作成)

CREATE INDEX EMP_PK ON (emp_id)

      STORAGE (INITIAL 100M NEXT 10M PCTINCREASE 0)        エクステントの割当と解放が

      TABLESPACE user2;                     頻繁に行われると、データ

)エクステントの割当が解放される処理(切り捨て、削除)        ファイル内で領域が断片化

TRUNCATE TABLE EMP;                     する可能性がある。

DROP TABLE EMP;                        (一時セグメント、RBS

DROP INDEX EMP_PK;                      断片化傾向が高い)

 

 断片化を防ぐために、隣接エクステントを1つのエクステントにまとめて使用する。⇒コアレス処理

 コアレスは、エクステントの解放後すぐには行われず、次回にその空きエクステントがセグメントに割当てられるときに行われる。そのため、コアレスを事前に行っておけば、エクステントの割当が速やかに行われることになる。

)明示的なコアレスの実行

 ALTER TABLESPACE 表領域名 COALESCE;

 

 

◎ブロック領域管理パラメータ

角丸四角形吹き出し: INITRANS~MAXTRANSまで増加○データブロックの構成

ブロックヘッダー

データブロックアドレス

表ディレクトリ

行ディレクトリ

トランザクションスロット

トランザクションスロット

・・・

角丸四角形吹き出し: PCTFREEまで使用可

            空き領域

 

角丸四角形吹き出し: PCTUSEDまで挿入可                        データ領域  

データ  

データ   

データ   

データ   

データ

データ   

データ   

データ   

・・・

 

 

○データブロックを制御するパラメータ ⇒ セグメントに対してのみ指定可能

ブロック領域管理パラメータは、データセグメントと索引セグメントの領域使用並行性と領域使用率を制御することができる。

パラメータ

内容

PCTFREE

ブロック内の行に対する更新操作で生じる拡張に備えた空き領域の割合 (デフォルト:10)

PCTUSED

ブロックで使用されている領域の最小割合 (デフォルト:40)

 INITRANS

データブロック、索引ブロックに作成されるトランザクションスロットの初期値

)INITRANS 3ならば、同時に3つ以上のトランザクションが同じブロック内のデータを変更できる。最小同時実行性が保証されることになる。

 MAXTRANS

データブロックまたは索引ブロックを変更できる同時トランザクションの数を制限する

PCTFREE,PCTUSEDは、ブロックサイズからブロックヘッダーを除いた部分を10%として算出する。

 

 

◎記憶領域に関する情報の取得

表領域、データファイル、セグメント、エクステントに関する情報や、それぞれの関係は、データディクショナリビューから取得。

 

 

 

 

 

 

 

 


2001/07/20 担当:Y.N

[TOP]