我正在使用 SQL Server 2016 来了解内存中 OLTP 表。
我创建了一个数据库mydatabase
,然后在其上运行 alter 命令来创建一个文件组:
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 的对象资源管理器中查看这两个表。它们在我的mydatabase > Tables
节点下的数据库中不可见。我怎么能看到他们?请参阅随附的屏幕截图。
但是如果我运行这个
SELECT
name, object_id, type_desc, durability_desc,
temporal_type, temporal_type_desc
FROM
sys.Tables
我可以看到两张桌子。请看下面的截图。
有什么方法可以在对象资源管理器中看到它们吗?或者这是默认行为?