メモリ最適化オブジェクト用ストレージの作成と管理Creating and Managing Storage for Memory-Optimized Objects

適用対象: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

インメモリ OLTPIn-Memory OLTP には SQL ServerSQL Serverエンジンが統合されているため、メモリ最適化テーブルと (従来型の) ディスクベース テーブルの両方を同じデータベースに格納することができます。The インメモリ OLTPIn-Memory OLTP engine is integrated into SQL ServerSQL Server, which lets you have both memory-optimized tables and (traditional) disk-based tables in the same database. ただし、メモリ最適化テーブルのストレージ構造は、ディスクベース テーブルとは異なります。However, the storage structure for memory-optimized tables is different from disk-based tables.

ディスクベース テーブルのストレージには、次のキー属性があります。Storage for disk-based table has following key attributes:

  • ファイル グループにマップされます。ファイル グループは、1 つ以上のファイルを格納します。Mapped to a filegroup and the filegroup contains one or more files.

  • 各ファイルは 8 ページから成るエクステントに分割されます。各ページのサイズは 8K バイトです。Each file is divided into extents of 8 pages and each page is of size 8K bytes.

  • 1 つのエクステントは複数のテーブルで共有できます。ただし、割り当てられたページと、テーブルまたはインデックスの間には 1 対 1 のマッピングがあります。An extent can be shared across multiple tables, but a there is 1-to-1 mapping between an allocated page and the table or index. つまり、1 つのページに、2 つまたは複数のテーブルまたはインデックスの行を含めることはできません。In other words, a page can't have rows from two or more tables or index.

  • データは必要に応じてメモリ (バッファー プール) に移動され、変更されたページや新しく作成されたページは非同期的にディスクに書き込まれ、ほぼランダムな IO が生成される結果になります。The data is moved into memory (the buffer pool) as needed and the modified or newly created pages are asynchronously written to the disk generating mostly random IO.

メモリ最適化テーブルのストレージには、次のキー属性があります。Storage for memory-optimized tables has following key attributes:

  • すべてのメモリ最適化テーブルは、メモリ最適化データ ファイル グループにマップされます。All memory-optimized tables are mapped to a memory-optimized data-filegroup. このファイル グループは、Filestream に類似した構文とセマンティクスを使用します。This filegroup uses syntax and semantics similar to Filestream.

  • ページという単位はなく、データは行として保存されます。There are no pages and the data is persisted as a row.

  • メモリ最適化テーブルに対するすべての変更は、アクティブ ファイルへの追加という形で格納されます。All changes to memory-optimized tables are stored by appending to active files. ファイルの読み取りと書き込みのどちらもシーケンシャルに実行されます。Both reading and writing to files is sequential.

  • 更新は、削除、およびその後に続く挿入という形で実装されます。An update is implemented as a delete followed by an insert. 削除された行は、ストレージから直ちに削除されるわけではありません。The deleted rows are not immediately removed from the storage. 削除された行は、「 メモリ最適化テーブルの持続性」で説明されているポリシーに基づき、MERGE と呼ばれるバックグラウンド プロセスによって削除されます。The deleted rows are removed by a background process, called MERGE, based on a policy as described in Durability for Memory-Optimized Tables.

  • ディスクベース テーブルとは異なり、メモリ最適化テーブルのストレージは圧縮されません。Unlike disk-based tables, storage for memory-optimized tables is not compressed. 圧縮された (行またはページの) ディスクベース テーブルをメモリ最適化テーブルに移行する場合は、サイズの変化を考慮する必要があります。When migrating a compressed (ROW or PAGE) disk-based table to memory-optimized table, you will need to account for the change in size.

  • メモリ最適化テーブルは、持続的にすることも、非持続的にすることもできます。A memory-optimized table can be durable or can be non-durable. 持続性のあるメモリ最適化テーブルに対してのみ、ストレージを構成する必要があります。You only need to configure storage for durable memory-optimized tables.

ここでは、チェックポイント ファイル ペアと、メモリ最適化テーブルのデータが格納されるしくみの他の側面について説明します。This section describes checkpoint file pairs and other aspects of how data in memory-optimized tables is stored.

このセクションのトピック:Topics in this section:

参照See Also

インメモリ OLTP (インメモリ最適化)In-Memory OLTP (In-Memory Optimization)