SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

翔泳社の本:『絵で見てわかるSQL Serverの仕組み』

SQL Serverが管理するデータベースの実体とアクセスパターン

抄録:『絵で見てわかるSQL Serverの仕組み』


 前回は、書籍『絵で見てわかる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速度が速くなります。

次のページ
2.2データベースファイルへのアクセスパターン

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
関連リンク
翔泳社の本:『絵で見てわかるSQL Serverの仕組み』連載記事一覧

もっと読む

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/14042 2021/03/26 11:45

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング