SHOEISHA iD

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

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

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

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

お申し込み受付中!

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

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

あたらしいSQL Server/Denaliの世界

Denali のメモリ管理(前編)


バッファプールとは

 メモリ管理の主要なコンポーネントの1つであるバッファプールは、そもそもデータベースのテーブルなどをユーザー間で共有するためにI/Oを管理するコンポーネントです。そのため、アプリケーションがデータベースの情報にアクセスすると、ディスクからバッファプールのメモリにデータベースの情報が読み込まれ、キャッシュされます。SQL Serverのデータベースのファイルは複数のページに論理的に分割されていて、1ページのサイズは8KBです。同様にバッファ プールが管理するメモリも 1ページを8KBとしてページ単位で使用されます。

 最初にバッファプールはデータベースの情報をユーザー間で共有するためのコンポーネントと記載しましたが、実際にはバッファプールが管理するメモリはデータベースをキャッシュする以外にも使用されています。SQL Serverの内部コンポーネントがメモリを必要とする場合もバッファプールのメモリが使用されるのです(このデータベースの情報以外に使用されているページはStolen pagesと呼ばれています)。内部コンポーネントがメモリマネージャにメモリを要求した場合、メモリマネージャはSingle Page Allocator と呼ばれるコンポーネントを使用してバッファプールにメモリを要求し、バッファプールは空きページ(データベースの情報のキャッシュや他の内部コンポーネントで使用されていない)からページを割り当てます。リソース ガバナーは全てのメモリの制御できないと書きましたが、このSingle Page Allocatorを使用したメモリの割り当てのみを制御します。

 データベースの情報をキャッシュする場合や内部コンポーネントに割り当てるメモリは、バッファ プール自身がWindowsのアプリケーションではおなじみのVirtualAlloc APIを使用して獲得しています。VirtualAlloc APIを使用して獲得したメモリは、空きページとして管理され、データベースのページの情報が読み込まれる場合などに使用されます。ページが使用されなくなると再び空きページとして管理され、解放されることはありません(システムの空きメモリが不足した場合は SQL Serverは使用しているメモリを解放します)。 

 このようにバッファプールは、データベースの情報を共有するためのI/Oとキャッシュのためのメモリ管理の仕組みを持っており、また他の内部コンポーネントのためのメモリの割当の機能を持っています。

次のページ
Multi Page Allocatorとは

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

  • Facebook
  • X
  • Pocket
  • note
あたらしいSQL Server/Denaliの世界連載記事一覧

もっと読む

この記事の著者

坂輪貴行(サカワ タカユキ)

  日本マイクロソフトの Premier Field Engineering 部にて、SQL Server ユーザーの支援を行う。前職はシステム エンジニアであり、長く Sybase を使用したプロジェクトに従事。業界歴 14 年の月一ゴルファー。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3418 2012/02/10 18:31

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング