インメモリ OLTP テーブルについて学習するために SQL Server 2016 を使用しています。
データベースをmydatabase
作成し、これに対して変更コマンドを実行して、ファイル グループを作成します。
ALTER DATABASE mydatabase
ADD FILEGROUP [mydatabase_mod] CONTAINS MEMORY_OPTIMIZED_DATA;
このグループにコンテナを作成するには:-
ALTER DATABASE mydatabase
ADD FILE (name = [mydatabase_dir], filename= 'e:\Learn\mydatabase_dir')
TO FILEGROUP mydatabase_mod;
これらのコマンドが正常に実行された後、このデータベースにメモリ最適化された永続テーブルと非永続テーブルを作成しました。mytable_durable
正常にmytable_non_durable
作成されます。
CREATE TABLE [dbo].[mytable_durable]
(
c1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=1000000),
c2 NCHAR(48) NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY = SCHEMA_AND_DATA);
CREATE TABLE [dbo].[mytable_non_durable]
(
c1 INT NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=1000000),
c2 NCHAR(48) NOT NULL
) WITH (MEMORY_OPTIMIZED=ON, DURABILITY = SCHEMA_ONLY);
SQL Server 2016 のオブジェクト エクスプローラーでこれら 2 つのテーブルを表示したいと思いますmydatabase > Tables
。ノードの下のデータベースには表示されません。どうすればそれらを見ることができますか? 添付のスクリーンショットをご覧ください。
しかし、これを実行すると
SELECT
name, object_id, type_desc, durability_desc,
temporal_type, temporal_type_desc
FROM
sys.Tables
両方のテーブルが見えます。次のスクリーンショットをご覧ください。
オブジェクト エクスプローラーでそれらを表示する方法はありますか? または、これはデフォルトの動作ですか?