メモリ最適化テーブルを使用するための要件
適用対象: SQL Server
この記事では、SQL Server でインメモリ機能を導入するための要件について説明します。
要件
インメモリ OLTP を使用するには「SQL Server 2022: ハードウェアとソフトウェアの要件」に加え、次も必要です。
SQL Server 2016 (13.x) SP 1 以降のバージョンのあらゆるエディション。 SQL Server 2014 (12.x) と SQL Server 2016 (13.x) RTM (SP1 以前) の場合、Enterprise、Developer、または Evaluation エディションが必要です。
インメモリ OLTP には、64 ビット版の SQL Server が必要です。
SQL Server には、メモリ最適化テーブルおよびインデックス内にデータを保持するために十分なメモリが必要です。また、オンライン ワークロードに対応するには、追加のメモリが必要です。 詳細については、「 メモリ最適化テーブルのメモリ必要量の推定」を参照してください。
仮想マシン (VM) で SQL Server を実行する場合、メモリ最適化テーブルおよびインデックスに必要なメモリに対応できるよう、VM に十分なメモリを割り当てる必要があります。 VM ホスト アプリケーションによっては、VM のメモリ割り当てを保証する構成オプションはメモリ予約と呼ばれます。動的メモリを使用する場合は、最小 RAM と呼ばれます。 これらの設定が、SQL Server のデータベースのニーズを十分に満たしていることを確認します。
持続性メモリ最適化テーブルの 2 倍のサイズの空きディスク領域。
プロセッサは、インメモリ OLTP を使用するための
cmpxchg16b
命令をサポートしいる必要があります。 すべての最新の 64 ビット プロセッサでは、cmpxchg16b
がサポートされています。仮想マシンを使用しており、古いプロセッサが原因のエラーが SQL Server によって表示される場合は、VM ホスト アプリケーションに
cmpxchg16b
を許可する構成オプションがあるかどうかをご確認ください。 該当する構成オプションがない場合は、Hyper-V を使用できます。Hyper-V では、構成オプションを変更することなくcmpxchg16b
をお使いいただけます。インメモリ OLTP は データベース エンジン サービスの一部としてインストールされます。
レポート生成 (テーブルまたはストアド プロシージャをインメモリ OLTP に移植する必要があるかどうかを決定する) および SQL Server Management Studio (SQL Server Management Studio オブジェクト エクスプローラーを介してインメモリ OLTP を管理する) をインストールするには、SQL Server Management Studio (SSMS) をダウンロードします。
Note
- Azure SQL データベースのインメモリ データに特化した詳細については、「Azure SQL Database でインメモリ テクノロジを使用してパフォーマンスを最適化する」と「ブログ: Azure SQL dデータベース のインメモリ OLTP」を参照してください。
- Azure SQL Managed Instance のインメモリ データに特化した詳細については、「Azure SQL Managed Instance でインメモリ テクノロジを使用してパフォーマンスを最適化する」を参照してください。
インメモリ OLTP の使用に関する重要な注意事項
SQL Server 2016 (13.x) 以降のバージョンでは、使用可能なメモリ以外、メモリ最適化テーブルのサイズに制限はありません。
SQL Server 2014 (12.x) では、データベースにあるすべての持続性のあるテーブルのメモリ内サイズの合計が 250 GB を超えないようにする必要があります。 詳細については、「 メモリ最適化テーブルのメモリ必要量の推定」を参照してください。
Note
SQL Server 2016 (13.x) SP 1 より、Standard エディションと Express エディションでインメモリ OLTP がサポートされていますが、特定のデータベースでメモリ最適化テーブルに利用できるメモリ量にクォータが課せられます。 Standard エディションの場合、これはデータベースごとに 32 GB です。Express エディションの場合、データベースごとに 352 MB です。
メモリ最適化テーブルが含まれるデータベースを 1 つ以上作成する場合は、SQL Server サービス開始アカウントに SE_MANAGE_VOLUME_NAME ユーザー権を与え、ファイルの瞬時初期化 (IFI) を有効にしてください。 IFI なしの場合、メモリ最適化ストレージ ファイル (データ および差分ファイル) が作成時に初期化されるため、ワークロードのパフォーマンスが低下する場合があります。 有効化方法など IFI に関する詳細については、「データベースのファイルの瞬時初期化」を参照してください。
-
既知の問題: メモリ最適化テーブルを含むデータベースでは、復旧を使用せずにトランザクション ログ バックアップを実行し、後で復旧を使用してトランザクション ログの復元を実行すると、データベースの復元プロセスが応答しなくなる可能性があります。 この問題点は、ログ配布機能にも影響する可能性があります。 この問題を回避するには、復元プロセスを開始する前に SQL Server インスタンスを再起動します。