-
Notifications
You must be signed in to change notification settings - Fork 0
MS_BufferPoolExtension
nishi_74322014 edited this page Aug 19, 2026
·
1 revision
- 戻る(SQL Server)
補足(原文が空欄のため、要点を補う): Buffer Pool Extension (BPE)
(SQL Server 2014 以降)のこと。
SSD をバッファ プールの延長として使う機能である。SQL Server は、データ ページをディスクから読んだあと
メモリ上(バッファ プール)にキャッシュする。
ここにヒットすればディスク I/O が発生しないため、
バッファ プールのヒット率が性能を大きく左右する。【従来】 バッファ プール(RAM) ──── データ ファイル(ディスク) ↑ ここが遅い 【BPE 有効】 バッファ プール(RAM) ── SSD ── データ ファイル(ディスク) ↑ 中間層を挟むRAM に載りきらないページをSSD に退避することで、
「RAM ほど速くないが、ディスクよりは速い」層を作る。ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = 'F:\SSD\ExtensionCache.bpe', SIZE = 32 GB);
判定 読み取り中心のワークロード 効く(BPE はクリーン ページのみを保持する) 書き込み中心 効かない(更新済みページは対象外) RAM が潤沢でヒット率が高い 効かない(そもそも読みに行かない) RAM が不足していて I/O 待ちが多い 効く可能性がある データ ファイルが既に SSD 上にある ほぼ意味がない 「更新されたページは置かない」というのが要点で、
だから障害時にデータが失われない(消えても再読み込みすればよい)。
逆に言えば、書き込み性能の改善には一切ならない。登場当時は「RAM は高価、SSD は安い」という前提で意味があったが、
現在は
- メモリの単価が下がった(RAM を増やす方が素直で効果的)、
- データ ファイル自体を NVMe SSD に置くのが普通になった
(Azureのディスク ストレージ の Premium SSD 等)、という事情から、使う場面はかなり限られる。
Standard Edition でメモリ上限(128 GB)に達しており、
かつ読み取り中心、という条件が揃った場合の選択肢、という理解でよい。メモリ最適化データベースエンジン とは名前が似ているが、
解決する問題がまったく違う点に注意。
バッファー プール拡張 In-Memory OLTP 狙い I/O 待ちの削減 ロック / ラッチ競合の解消 対象 既存のテーブルすべて 指定したテーブルのみ(作り直しが必要) 効く症状 メモリ不足による読み込み多発 同時更新でスケールしない
- バッファー プール拡張
https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/buffer-pool-extension
Tags: 移行, データアクセス, SQL Server
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。