EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

SQL Serverが管理するデータベースの実体とアクセスパターン 抄録:『絵で見てわかるSQL Serverの仕組み』

edited by DB Online   2021/03/05 08:00

 前回は、書籍『絵で見てわかるSQL Serverの仕組み』(翔泳社、平山 理 著)の第1章から、マルチスレッドプログラミングとWindowsスケジューラの役割について紹介しました。今回は第2章から、SQL Serverが管理するデータベースの実体や、データベースファイルへのアクセスパターンなどをみていきます。今回もSQL Serverを理解するうえで大切な部分となりますので、前章と併せて確認してみてください。

 前章ではSQL ServerがCPUを効率的に使用するために内部に保持しているSQLOSスケジューラについて紹介しました。この章ではSQLOSスケジューラに管理される側の動作の1つであるデータファイルやトランザクションログファイルといった物理ファイルへのディスクI/O(入出力)操作について詳しく見ていきます。SQL Serverが管理するデータベースと物理ファイルの関連から始めて、I/Oを行う内部コンポーネント、アクセスに使用しているAPI、さらにモニタリング(監視)方法まで紹介します。SQL Serverが実行するI/O操作を、前章と同様に論理的かつ物理的な視点からとらえます。

2.1 SQL Serverが管理するデータベースの実体

 ユーザーアプリケーションが比較的大きな量のデータを長期的に保持する必要がある場合には、どのような手段をとるのが現実的でしょうか。おそらくほとんどの場合 は、ファイルを作成して保存する必要があるデータを、ディスクなどの記憶メディアに書き出すという手段が選ばれるように思います。SQL Serverも例外ではありません。SQL Serverは長期的に膨大なデータを保存管理するデータベース管理システムです。またSQL Serverは、Windowsというオペレーティングシステムの観点から見た場合、ほとんどすべての点において一般的なユーザーアプリケーションと変わりありません。

 それでは、データベースの実体とはいったいどのようなものでしょうか。それは、Windowsが管理するフォルダに作成されたファイルです(エクスプローラーにも、ごく普通のファイルとして表示されます)。データベースは、データファイルとトランザクションログファイルという2種類の物理ファイルで構成されています(本書では、この2つのファイルを総称してデータベースファイルと言います)。データベースを配置したフォルダにはデータファイル(拡張子が.mdfや.ndf)とトランザクションログファイル(拡張子が.ldf)が格納されます(図2.1)。ここからは、それぞれのファイルについて少し詳しく見ていきましょう。

図2.1データベースと物理ファイル
図2.1 データベースと物理ファイル
[画像クリックで拡大]

2.1.1 データファイル(拡張子.mdf、.ndf)

 ユーザーが参照/挿入/更新/削除を行うデータ本体が格納されています。SQL Serverはデータファイルの中を8KBのブロックに分割して使用しています。分割した8KBのブロックは、ページという論理的な単位として管理されます。またページは、SQL Serverが物理ディスクから読み込んだデータを処理する際に、あるいは物理ディスクへデータを書き込む際の最小の論理的な単位でもあります(図2.2)。

図2.2データベースと8KBブロック
図2.2 データベースと8KBブロック
[画像クリックで拡大]

 1つのデータベースに対して、1つのデータファイルを指定することも、複数のデータファイルを割り当てることもできます。一般的に複数のスピンドル[※1]を持つディスク装置にデータベースを配置する場合は、データファイルを複数に分割したほうが物理アクセスの速度が向上します(図2.3)。

図2.3複数データファイルと複数スピンドル
図2.3 複数データファイルと複数スピンドル
[画像クリックで拡大]

[※1]ここでのスピンドルとは、回転軸を保持するディスク装置を意味します。ディスクが複数のスピンドルを保持す る場合、それぞれが独自にアクセスを行うことができます。そのため、単一のスピンドルしか保持しないディスクと比較すると、一般的にI/O速度が速くなります。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


関連リンク

著者プロフィール

  • EnterpriseZine編集部(エンタープライズジン ヘンシュウブ)

    「EnterpriseZine」(エンタープライズジン)は、翔泳社が運営する企業のIT活用とビジネス成長を支援するITリーダー向け専門メディアです。データテクノロジー/情報セキュリティの最新動向を中心に、企業ITに関する多様な情報をお届けしています。

バックナンバー

連載:翔泳社の本:『絵で見てわかるSQL Serverの仕組み』
All contents copyright © 2007-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5