こんにちは、KiYOです。
システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。
新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。
今回は、Microsoft SQL Serverのデータベースファイルの配置について解説していきます。
データベースファイルの配置
データベースには、データファイルと、ログファイルの少なくとも2つのファイルがあります。
データベースを構成する物理ファイル
ファイル | 内容 | |
1 | プライマリデータファイル | データベースの起動情報が含まれています。 ユーザデータおよびオブジェクトは、このファイルまたはセカンダリデータファイルに格納できます。各データベースには1つのプライマリデータファイルがあります。プライマリデータファイルに推奨されるファイルの拡張子は「.mdf」です。 |
2 | セカンダリデータファイル | セカンダリデータファイルは省略可能です。 各ファイルを異なるディスクドライブに配置して、データを分散することができます。 推奨されるファイルの拡張子は「.ndf」です。 |
3 | トランザクションログファイル | データベースの復旧に使用されるログ情報が格納されます。 推奨されるファイル名の拡張子は「.ldf」です。 |
規定では、データファイルとトランザクションログファイルは同一のドライブおよびパス上に配置されます。
ディスクの書き込み分散でおすすめは、データファイルとトランザクションログファイルを異なる物理ディスクボリューム上に配置することをおすすめします。
論理ボリュームではダメです。物理ディスクを分けることが重要。
データファイルとログファイルの分散配置
ログファイルとデータファイルのディスクへのアクセス仕様は大きく異なります。ログファイルのI/Oは、主にシーケンシャルな書き込み操作で、ランダムなディスクアクセスはほとんど発生しません。
逆に、データファイルのI/Oは、非同期に実行される読み取りまたは、書き込み操作でランダムなディスクアクセスが多いです。
そのため、以下がベストプラクティスになります。
RAID概要
RAID(Redundant Array of Independent Disks)はアレイと呼ばれる複数のディスクドライブから構成されるディスクシステムです。RAIDを使用することで、高性能で信頼性が高いシステムを構築できるようになります。
RAIDはSQLServerの一部ではないですが、パフォーマンスやフォールトトレランスに影響します。
Udemyというオンライン講座でもデータベースの学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なデータベースをここで学習しています。
インデックスについて詳しく解説してくれて、理解しやすいと思います。
SQLServerのインデックスを理解して検索を速くする方法その他のパフォーマンスチューニングはこちらをご覧ください。
コメント