メモリ内データベース システムとテクノロジ

適用対象:SQL Server

このページは、SQL Server 内のインメモリ機能とテクノロジに関するリファレンス ページとして使用できます。 概念上、メモリ内データベース システムとは、最新のデータベース システムで使用できるより大きなメモリ容量を利用するように設計されたデータベース システムを指します。 メモリ内データベースは、本質的にリレーショナルまたは非リレーショナルです。

多くの場合、メモリ内データベース システムのパフォーマンスの利点は主として、メモリ内にあるデータにアクセスする方が利用可能な最速のディスク サブシステム上にあるデータにアクセスよりも (桁違いに) 高速であることに起因すると考えられます。 しかし、多くの SQL Server ワークロードは、使用可能なメモリ内にワーキング セット全体を収めることができます。 多くのメモリ内データベース システムは、データをディスクに永続化することができ、使用可能なメモリ内にデータ セット全体を常に収めることができるとは限りません。

リレーショナル データベースのワークロードでは、かなり低速でも持続性のあるメディアに代わって、高速の揮発性キャッシュが主流です。 これは、ワークロードを管理するための特定のアプローチを必要とします。 メモリ転送速度の高速化、容量の増加、または永続メモリによって与えられる機会により、リレーショナル データベースのワークロード管理への新しいアプローチを促進させることができる新しい機能とテクノロジの開発が容易になります。

ハイブリッド バッファー プール

適用対象:SQL Server

ハイブリッド バッファー プール は、SQL Server 2019 (15.x) を搭載した Windows と Linux の両方のプラットフォームのバイト アドレス指定可能な永続メモリ ストレージ デバイス上にあるデータベース ファイル用のバッファー プールを拡張します。

メモリ最適化 tempdb メタデータ

適用対象:SQL Server

SQL Server 2019 (15.x) では、メモリ最適化 tempdb メタデータという新機能が導入されています。この機能により、効果的に一部の競合ボトルネックが除去され、tempdb が多用されるワークロードに対して新たなレベルのスケーラビリティが実現されます。

SQL Server 2019 (15.x) および新しい機能のメモリ最適化メタデータを含む最近の tempdb の機能強化の詳細については、「SQL Server 2022 のシステム ページ ラッチの同時実行性の強化によるスケーラビリティの向上」および「システム ページ ラッチの同時実行性の強化 (エピソード 6) | 公開済みデータ」を参照してください。

インメモリ OLTP

適用対象:SQL Server

インメモリ OLTP は、SQL Server および SQL Database で、トランザクション処理のパフォーマンスの最適化、データ インジェスト、データの読み込み、一時的なデータのシナリオに使用できるデータベース テクノロジです。

Linux 用に永続メモリのサポートを構成する

適用対象:SQL Server - Linux

SQL Server 2019 (15.x) では、ndctl ユーティリティ 永続メモリを使用して永続メモリ (PMEM) を構成する方法について説明します。

永続化されたログ バッファー

SQL Server 2016 (13.x) の Service Pack 1 では、WRITELOG 待機によってバインドされた、書き込み負荷の高いワークロードのパフォーマンスの最適化が導入されました。 ログ バッファーの格納には永続メモリが使用されます。 このバッファーは小さく (ユーザー データベースあたり 20MB)、トランザクション ログに書き込まれたトランザクションを書き込むためにディスクにフラッシュする必要があります。 書き込み負荷の高い OLTP ワークロードの場合、このフラッシュ メカニズムがボトルネックになる可能性があります。 ログ バッファーを永続メモリに格納すると、ログを書き込むために必要な操作の数が削減され、トランザクション時間全体を短縮し、ワークロードのパフォーマンスを向上することができます。 このプロセスは、ログ末尾のキャッシングとして導入されました。 しかし、ログ末尾のバックアップ、およびログの末尾は、書き込まれてはいるがまだバックアップされていないトランザクション ログの一部であるという従来の認識と矛盾することが考えられます。 正式な機能名は、「永続化されたログ バッファー」であるため、ここでは、この名前を使用しています。

Add persisted log buffer to a database」 (永続化されたログ バッファーをデータベースに追加する) を参照してください。