次の方法で共有


メモリ最適化オブジェクトのストレージを作成および管理する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

SQL Server にはインメモリ OLTP エンジンが統合されているため、メモリ最適化テーブルと (従来型の) ディスクベース テーブルの両方を同じデータベースに格納することができます。 ただし、メモリ最適化テーブルのストレージ構造は、ディスクベース テーブルとは異なります。

ディスクベース テーブルのストレージには、次のキー属性があります。

  • ファイル グループにマップされます。ファイル グループは、1 つ以上のファイルを格納します。

  • 各ファイルは 8 ページのエクステントに分割され、各ページのサイズは 8 KB (8,192 バイト) です。

  • エクステントは複数のテーブル間で共有できますが、割り当てられたページとテーブルまたはインデックスの間には 1 対 1 のマッピングがあります。 つまり、1 つのページに、2 つまたは複数のテーブルまたはインデックスの行を含めることはできません。

  • データは必要に応じてメモリ (バッファー プール) に移動され、変更されたページや新しく作成されたページは非同期的にディスクに書き込まれ、ほぼランダムな IO が生成される結果になります。

メモリ最適化テーブルのストレージには、次のキー属性があります。

  • すべてのメモリ最適化テーブルは、メモリ最適化データ ファイル グループにマップされます。 このファイル グループは、Filestream に類似した構文とセマンティクスを使用します。

  • ページという単位はなく、データは行として保存されます。

  • メモリ最適化テーブルに対するすべての変更は、アクティブ ファイルへの追加という形で格納されます。 ファイルの読み取りと書き込みのどちらもシーケンシャルに実行されます。

  • 更新は、削除、およびその後に続く挿入という形で実装されます。 削除された行は、ストレージからすぐに削除されることはありません。 削除された行は、「Memory-Optimized MERGE」で説明されているポリシーに基づいて、と呼ばれるバックグラウンド プロセスによって削除されます。

  • ディスク ベースのテーブルとは異なり、メモリ最適化テーブルのストレージは圧縮されません。 圧縮 (ROW または PAGE) ディスク ベースのテーブルをメモリ最適化テーブルに移行する場合は、サイズの変更を考慮する必要があります。

  • メモリ最適化テーブルは、持続的にすることも、非持続的にすることもできます。 持続性のあるメモリ最適化テーブルに対してのみ、ストレージを構成する必要があります。

ここでは、チェックポイント ファイル ペアと、メモリ最適化テーブルのデータが格納されるしくみの他の側面について説明します。

このセクションの記事: