メモリ最適化テーブルの作成
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance
メモリ最適化テーブルは、テーブル全体がメモリ内に存在する SQL Server の機能です。 テーブル データの 2 番目のコピーはディスクに保持されています。 データベース復旧中は、メモリ最適化テーブルのデータはディスクからの読み取りのみ行われます。 たとえば、サーバー再起動後などの場合です。 メモリ最適化テーブルは、Azure Data Studio のテーブル デザイナーで作成できます。
注意
メモリ最適化テーブルは、ファイル グループに属している必要があります。 詳細については、メモリ最適化ファイル グループに関するこのドキュメントを参照してください。
メモリ最適化テーブルには、クラスター化されていない主キーが必要です。 メモリ最適化テーブルの概要については、「メモリ最適化テーブルの概要」の記事を参照してください。 さらに、すべてのメモリ最適化テーブルに少なくとも 1 つのインデックスが必要です。
メモリ最適化テーブルを作成する
メモリ最適化テーブルを作成するには、データベースのファイル グループが作成されていることを確認する必要があります。 オブジェクト エクスプローラーで、メモリ最適化テーブルが存在するまったく新しいデータベースを作成するため、サーバー レベルから新しいクエリ エディター ウィンドウを開きます。 クエリ エディターで、次のコードをコピーし貼り付けて実行します。
CREATE DATABASE imoltp GO -------------------------------------- -- create database with a memory-optimized -- filegroup and a container. ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod CONTAINS MEMORY_OPTIMIZED_DATA; ALTER DATABASE imoltp ADD FILE ( name='imoltp_mod1', filename='c:\data\imoltp_mod1') TO FILEGROUP imoltp_mod; ALTER DATABASE imoltp SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON; GO --
上記のコードで、新しいデータベースを作成し、ファイル グループをデータベースに追加し、ファイル グループにファイルを追加し、最後に、このデータベースに追加されたメモリ最適化テーブルの分離レベルを SNAPSHOT に設定します。
次に、オブジェクト エクスプローラーから imoltp データベースを開き、[テーブル] フォルダーを右クリックし、[新しいテーブル] を選択してテーブルを作成します。 これにより、テーブル デザイナー ビューが開きます。 このテーブルの主キーを割り当てます ([主キー] 設定の [クラスター化] チェック ボックスをオフにして、この主キーがクラスター化されていないことを確認します)
[テーブルのプロパティ] ペインに移動します。 [メモリ最適化] チェック ボックスを選択します。 これにより、[持続性] ドロップダウンが有効になり、スキーマのみをメモリに格納するか、スキーマとデータの両方を格納するかを選択できます。 [スキーマ] を選択すると、データベースのスキーマのみがメモリに保存されます。 次に示すように、スクリプトが更新されて変更が反映されます。
[スキーマ] を選択すると、スキーマのみがメモリに保存されます。 [スキーマとデータ] を選択すると、スキーマとデータの両方がメモリに保存されます。 スクリプトの変更に注意してください。
注意
テーブル デザイナーでは、ハッシュ インデックス、列ストア インデックスもサポートされており、これらはメモリ最適化テーブルの作成時に構成できます。