とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

物理構造


みなさん、こんにちは。

どうも、さいばーきゃっとです。

前回の記事で「データブロック」、「エクステント」、「セグメント」に触れていなかったので、今回はその3点の概要を説明いたします。

データブロック

データブロックは、Oracleの論理構造及びI/Oの最小単位です。また、データブロックは、「ヘッダー」、「行データ」、「空き領域」の3つの構造が存在します。

  • ヘッダー

セグメントのタイプや行データのアドレス、サイズなどの管理情報が格納さる領域。上から下に向かって増加する。

  • 行データ

表の行データ。下から上に向かって増加する

  • 空き領域

ヘッダーや行データのサイズが大きくなった時に使用される領域

データブロックの中に、表の行データが複数格納されると、管理情報も増え(ヘッダー)、データブロックの空き領域が減少します。

エクステント

エクステントは、データブロックの連続領域であり、オブジェクトの格納における領域の割当や解除の単位です。エクステントは表の作成時に、必ず割り当てられ、データの挿入などによって領域が不足すると追加のエクステントが自動的に割り当てられます。

セグメント

セグメントは、データベースに格納されるオブジェクト(表や索引など)の実体です。例えば、ある表に複数のエクステントが割り当てられている場合、そのすべてのエクステントを合わせた領域をセグメントといいます。データベースに作成した表や索引などは、セグメントとして表領域に格納されます。