ブロック、エクステント、セグメント

データブロック

データブロックとは、データベースで管理するデータの最小単位、論理データベース記憶域(※) の最小単位:第 1 レベルである。
(※) Oracleによって管理されるもので OS では認識できない論理構造 ⇔ 物理構造

 

データブロックの中身(テーブル)

分類要素関連パラメータ
ブロックヘッダ共通ヘッダKCBH
固定トランザクションヘッダ ⇒ ITLKTBBH
可変トランザクションヘッダ ⇒ ITLKTBIT×(INITRANS-1)
データヘッダKDBH
表ディレクトリKDBT
行ディレクトリ 
空き領域PCTFREE
ITL ⇔ トランザクションスロットMAXTRANS
データ領域PCTUSED
ITL ⇔ トランザクションスロットMAXTRANS
ターミネータUB4
(オーバヘッドの合計)90+24×(INITRANS-1)(Pentium + Linux)

データ領域の関連事項

エクステント

エクステントは、データベースの記憶割り当てにおける論理単位(記憶域の第 2 レベル)
単一のデータファイルの連続したデータブロックで構成される。(このレベルでは、まだデータファイル間をまたげない。)
エクステントの先頭のブロックには、エクステントのディレクトリが格納される。

あるセグメントのエクステントが断片的に拡張されていくイメージ

セグメント

セグメントはエクステントの集合(記憶域の第 3 レベル)
セグメントは1つ以上のエクステントから構成される。
表領域内のオブジェクトのデータがすべて入っている。
複数のデータファイルで構成されたエクステントを同一セグメントにて利用可能。

セグメントの種類

データ・セグメント

パーティション化またはクラスタ化されていない表
パーティション表のパーティション
表のクラスタ

索引・セグメント

インデックス

一時・セグメント

一時的な作業領域、ソート処理、結合処理などに使われる(テンポラリ)

ロールバック・セグメント(UNDO 管理表 Oracle 9i)

ロールバックセグメント

タイプパラメータ

ブロックを構成する要素のサイズは、以下の SQL にて取得できる。

SELECT * FROM V$TYPE_SIZE
 WHERE TYPE IN ('KCBH', 'KTBBH', 'KTBIT','KDBH', 'KDBT', 'UB4');
タイプ名説明サイズ(バイト:Intel x86 + Linux)
KCBHBLOCK COMMON HEADER20
KTBBHTRANSACTION FIXED HEADER48*1
KTBITTRANSACTION VARIABLE HEADER24
KDBHDATA HEADER14
KDBTTABLE DIRECTORY ENTRY4
UB4UNSIGNED BYTE 44
 


関連事項

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー

*1 初期サイズとして2スロット予約されている:KTBIT(24)×2=48