【SQL Server】SQL Server の データベース内部構成

 SQL Server データベースは、2つのファイルで構成されている。
 [1] データ ファイル(.mdf)
 [2] トランザクション ログ ファイル(.ldf)

[1] データ ファイル

 * 以下の情報が格納されている。
   + テーブル
   + データ
   + インデックス
   + ビュー
   + ストアドプロシージャ etc...
 *「ページ」というディク入出力の単位で区切られており、

[1-1] ページ

 * 1サイズは 8 KBで構成されている

[1-2] ヒープ

 * 実データが格納されているページ全体

[1-3] エクステント

 * データ ファイル内の連続した 8 つのページを「エクステント」と呼ぶ(つまり、64KBの大きさ)
 * Extent = (論理的に連続した記憶領域のこと)
 * エクステントは、テーブルやインデックスに割り当てられる領域の単位になる

データが追加時のDBの動作

 1) エクステントが1つ確保される
 2) 追加されるデータが連続した 8 ページに格納される
  => 同じオブジェクトのデータが連続した8ページに格納されることが保証される
  => その結果、全件検索または範囲検索は、連続したデータにアクセスするので、
     エクステント単位でまとめて読み込むことでパフォーマンスを向上させる

[2] トランザクション ログ ファイル

 * トランザクションを記録するためのファイル
 * ストレージ・グループごとに作成される

参考文献

http://www.atmarkit.co.jp/fwin2k/tutor/exchange3004_06/exchange2003_06_02.html
http://www.atmarkit.co.jp/fwin2k/tutor/exchange3004_06/exchange2003_06_03.html