SQL Server Management Studio によるインメモリ OLTP のサポート

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

SQL Server Management Studio は、SQL Server のインフラストラクチャを管理するための統合環境です。 SQL Server Management Studio には、SQL Server のインスタンスを構成、監視、および管理するためのツールが備わっています。 詳細については、「 SQL Server Management Studio」を参照してください。

このトピックのタスクでは、SQL Server Management Studio を使用してメモリ最適化テーブル、メモリ最適化テーブルのインデックス、ネイティブ コンパイル ストアド プロシージャ、およびユーザー定義のメモリ最適化テーブル型を管理する方法について説明します。

プログラムによってメモリ最適化テーブルを作成する方法については、「 メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャの作成」を参照してください。

メモリ最適化データ ファイル グループが含まれるデータベースを作成するには

  1. オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース]を右クリックし、 [新しいデータベース]をクリックします。

  3. 新しいメモリ最適化データ ファイル グループを追加するには、 [ファイル グループ] ページをクリックします。 [メモリ最適化データ][ファイル グループの追加] をクリックし、メモリ最適化データ ファイル グループの名前を入力します。 [FILESTREAM ファイル] という列は、ファイル グループ内のコンテナー数を表します。 コンテナーは、 [全般] ページで追加します。

  4. ファイル グループにファイル (コンテナー) を追加するには、 [全般] ページをクリックします。 [データベース ファイル][追加]をクリックします。 [ファイルの種類] として [FILESTREAM データ]を選択し、コンテナーの論理名を指定して、メモリ最適化ファイル グループを選択します。次に [自動拡張 / 最大サイズ][無制限]に設定されていることを確認します。

    SQL Server Management Studio を使用して新しいデータベースを作成する方法の詳細については、「データベースの作成」を参照してください。

メモリ最適化テーブルを作成するには

  1. オブジェクト エクスプローラーで、データベースの [テーブル] ノードを右クリックし、 [新規][メモリ最適化テーブル]の順にクリックします。

    メモリ最適化テーブルを作成するためのテンプレートが表示されます。

  2. テンプレートのパラメーターを置き換えるには、[クエリ] メニューの [テンプレート パラメーターの値の指定] をクリックします。

    テンプレートの使用方法の詳細については、「 テンプレート エクスプローラー」を参照してください。

  3. オブジェクト エクスプローラーでは、テーブルはまずディスク ベース テーブル、次にメモリ最適化テーブルの順に並べ替えられます。 すべてのテーブルを名前順で確認するには、「 オブジェクト エクスプローラーの詳細 」を使用します。

ネイティブ コンパイル ストアド プロシージャを作成するには

  1. オブジェクト エクスプローラーで、データベースの [ストアド プロシージャ] ノードを右クリックし、 [新規][ネイティブ コンパイル ストアド プロシージャ]の順にクリックします。

    ネイティブ コンパイル ストアド プロシージャを作成するためのテンプレートが表示されます。

  2. テンプレートのパラメーターを置き換えるには、[クエリ] メニューの [テンプレート パラメーターの値の指定] をクリックします。

    新しいストアド プロシージャを作成する方法の詳細については、「 ストアド プロシージャの作成」を参照してください。

ユーザー定義のメモリ最適化テーブル型を作成するには

  1. [オブジェクト エクスプローラー]でデータベースの [種類] ノードを展開し、 [ユーザー定義テーブル型] ノードを右クリックします。次に [新規作成]をクリックし、 [ユーザー定義のメモリ最適化テーブル型]をクリックします。

    ユーザー定義のメモリ最適化テーブル型を作成するためのテンプレートが表示されます。

  2. テンプレートのパラメーターを置き換えるには、[クエリ] メニューの [テンプレート パラメーターの値の指定] をクリックします。

    新しいストアド プロシージャを作成する方法の詳細については、「CREATE TYPE (Transact-SQL)」を参照してください。

メモリの監視

メモリ最適化オブジェクトによるメモリ使用量レポートの表示

  • オブジェクト エクスプローラーでデータベースを右クリックし、 [レポート][標準レポート][メモリ最適化オブジェクトによるメモリ使用量]の順にクリックします。

    このレポートでは、データベース内のメモリ最適化オブジェクトによるメモリ領域の使用に関して詳細なデータが提供されます。

テーブルまたはデータベースに対する割り当てメモリおよび使用メモリのプロパティの表示

  1. インメモリ使用量に関する情報を取得します。

    • [オブジェクト エクスプローラー]でメモリ最適化テーブルを右クリックし、 [プロパティ][ストレージ] ページの順にクリックします。 [データ領域] プロパティの値は、テーブル内のデータによって使用されるメモリを示します。 [インデックス領域] プロパティの値は、テーブルのインデックスによって使用されるメモリを示します。

    • [オブジェクト エクスプローラー]で、データベースを右クリックし、 [プロパティ][全般] ページの順にクリックします。 [メモリ最適化オブジェクトに割り当てられたメモリ] プロパティの値は、データベースのメモリ最適化オブジェクトに割り当てられたメモリを示します。 [メモリ最適化オブジェクトに使用されるメモリ] プロパティの値は、データベースのメモリ最適化オブジェクトに使用されるメモリを示します。

サポートされた SQL Server Management Studio の機能

SQL Server Management Studio は、メモリ最適化データ ファイル グループ、メモリ最適化テーブル、インデックス、およびネイティブ コンパイル ストアド プロシージャを含むデータベースのデータベース エンジンによってサポートされる操作と機能をサポートしています。

データベース、テーブル、ストアド プロシージャ、ユーザー定義テーブル型、またはインデックス オブジェクトについては、インメモリ OLTP をサポートするために SQL Server Management Studio の次の機能が更新または拡張されています。

  • オブジェクト エクスプローラー

    • コンテキスト メニュー

    • フィルターの設定

    • スクリプト化

    • タスク

    • Reports

    • Properties

    • データベース タスク:

      • メモリ最適化テーブルを含むデータベースをアタッチおよびデタッチします。

        [データベースのアタッチ] のユーザー インターフェイスには、メモリ最適化データ ファイル グループは表示されません。 ただし、データベースのアタッチを続行することはでき、データベースは正しくアタッチされます。

        注意

        SQL Server Management Studio を使用してメモリ最適化データ ファイル グループ コンテナーを持つデータベースをアタッチする場合、データベースのメモリ最適化データ ファイル グループ コンテナーが別のコンピューター上に作成されているときには、両方のコンピューターでメモリ最適化データ ファイル グループ コンテナーの場所が同じである必要があります。 新しいコンピューターでデータベースのメモリ最適化データ ファイル グループ コンテナーを別の場所に配置する場合は、Transact-SQL を使用してデータベースをアタッチできます。 次の例では、新しいコンピューターのメモリ最適化データ ファイル グループ コンテナーの場所は C:\Folder2 です。 ただし、最初のコンピューターでは、メモリ最適化データ ファイル グループ コンテナーは C:\Folder1 に作成されています。

        CREATE DATABASE[imoltp] ON

        (NAME =N'imoltp',FILENAME=N'C:\Folder2\imoltp.mdf'),

        (NAME =N'imoltp_mod1',FILENAME=N'C:\Folder2\imoltp_mod1'),

        (NAME =N'imoltp_log',FILENAME=N'C:\Folder2\imoltp_log.ldf')

        FOR ATTACH

        GO

      • スクリプトの生成。

        スクリプトの生成とパブリッシュ ウィザードで、[オブジェクトの有無を確認する] スクリプト作成オプションの既定値は FALSE です。 ウィザードの [スクリプト作成オプションの設定] 画面で [オブジェクトの有無を確認] スクリプト作成オプションの値が TRUE に設定されている場合、生成されるスクリプトには「CREATE PROCEDURE <procedure_name> AS」と「ALTER PROCEDURE <procedure_name><procedure_definition>」が含まれます。 生成されたスクリプトを実行すると、ネイティブ コンパイル ストアド プロシージャが ALTER PROCEDURE をサポートしていないことが原因で、エラーが返されます。

        ネイティブ コンパイル ストアド プロシージャごとに生成されるスクリプトを変更するには

        1. In "CREATE PROCEDURE <procedure_name> AS" で、"AS" を "<procedure_definition>" に置き換えます。

        2. "ALTER PROCEDURE <procedure_name><procedure_definition>" を削除します。

      • データベースのコピー。 メモリ最適化オブジェクトを含むデータベースの場合、コピー先サーバー上にデータベースを作成する動作とデータを転送する動作が 1 回のトランザクション内で実行されることはありません。

      • データのインポートとエクスポート。 SQL Server のインポートおよびエクスポート ウィザードの [1 つ以上のテーブルまたはビューからデータをコピーする] オプションを使用します。 対象のテーブルが転送先データベースに存在しないメモリ最適化テーブルの場合には、以下の手順を実行します。

        1. SQL Server のインポートおよびエクスポート ウィザード[テーブルのコピーまたはクエリの指定] 画面で、 [1 つ以上のテーブルまたはビューのデータをコピーする]を選択します。 続けて、 [次へ] をクリックします。

        2. [マッピングの編集]をクリックします。 [変換先テーブルを作成する][SQL の編集]の順にクリックします。 CREATE TABLE 構文を入力して、転送先データベースにメモリ最適化テーブルを作成します。 [OK] をクリックし、ウィザードの残りの手順を実行します。

      • メンテナンス プラン。 インデックスを再構成し、再構築するメンテナンス タスクは、メモリ最適化テーブルとそのインデックスではサポートされません。 このため、インデックスを再構築および再構成するメンテナンス プランを実行しても、選択したデータベース内のメモリ最適化テーブルおよびそのインデックスは省略されます。

        メンテナンス タスクの統計の更新は、メモリ最適化テーブルおよびそのインデックスのサンプル スキャンではサポートされていません。 したがって、統計の更新のメンテナンス プランを実行すると、メモリ最適化テーブルおよびそのインデックスの統計は、常に WITH FULLSCAN, NORECOMPUTEに更新されます。

  • [オブジェクト エクスプローラーの詳細] ペイン

  • テンプレート エクスプローラー

SQL Server Management Studio でサポートされていない機能

インメモリ OLTP オブジェクトに対して、SQL Server Management Studio は、データベース エンジンでもサポートされない機能と操作はサポートしていません。

サポートされていない SQL Server 機能の詳細については、「インメモリ OLTP に対してサポートされていない SQL Server の機能」を参照してください 。

参照

SQL Server によるインメモリ OLTP のサポート