SQL Serverのデータファイルとログファイル

SQL Serverの2種類のファイル

SQL Serverには2種類のファイルがあります。データファイルログファイルです。

  • データファイル
  • ログファイル

「データファイル」と「ログファイル」について解説します。

「データファイル」はデータを管理するファイル、「ログファイル」は更新履歴を管理するファイルです。

ファイル 拡張子 役割
データファイル mdf データ本体
ログファイル ldf 更新履歴

 

SQL ServerとOracleのファイル構成の違い

SQL Serverは「データファイル」と「ログファイル」の2種類のファイルで構成されます。

「データ本体」と「更新履歴」のファイルのことですね。これはOracleでいうと「データファイル」と「REDOログファイル」に相当します。

Oracleの制御ファイルはありません。Oracleの制御ファイルに相当するのはSQL Serverではmasterデータベースなどのシステム系のデーターベースにあたります。

データファイル

データファイルにはさらに2種類あります。「プライマリデータファイル」と「セカンダリデータファイル」です。

ファイル 拡張子 役割
プライマリデータファイル mdf デフォルトのデータファイル
セカンダリデータファイル ndf 追加用のデータファイル。

負荷分散させたいときに使用

「プライマリデータファイル」はデフォルトのデータファイルです。通常、データファイルはプライマリデータファイルのみです。

もう一つの「セカンダリデータファイル」とは何でしょうか?

例えば、大規模システムなどでは1つのデータファイルのみではパフォーマンスに影響を及ぼしかねません。あるテーブルが集中的にアクセスされると、データファイルが1つでは全システムのパフォーマンス低下につながってしまいます。

そこで、データファイルをいくつかのファイルに分散させればパフォーマンスを担保できることがあります。例えば、負荷が高いテーブルを別のファイルにしておけば、システム全体のパフォーマンス低下につながらないかもしれません。

この複数のファイルが「セカンダリデータファイル」です。「プライマリデータファイル」に「セカンダリデータファイル」を追加して、データファイルを分散させます。

SQL Serverはこのようにしてパフォーマンスを担保しています。

ファイルグループ

前述のとおり、パフォーマンスを担保するためにファイルを複数で構成するケースがあります。この複数のファイルをまとめたものを「ファイルグループ」といいます。

例えば、「プライマリデータファイル」1つと「セカンダリデータファイル」2つをセットにして、これを1つの「ファイグループ」とします。

ファイルグループ

  • プライマリデータファイル・・・1つ
  • セカンダリデータファイル・・・2つ

このファイルグループに対して、テーブルやインデックスを割り当てます。

このファイルグループを使用すれば、異なるディスクにあるファイルを同じファイルグループにすることも可能です。

以上、SQL Serverの2種類のファイル、「データファイル」と「ログファイル」の解説でした。

コメント