1

我正在使用 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_durablemytable_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

我可以看到两张桌子。请看下面的截图。

在此处输入图像描述

有什么方法可以在对象资源管理器中看到它们吗?或者这是默认行为?

4

2 回答 2

1

我有同样的问题。解决方案是确保打开正确的 SSMS 版本。我从这里安装了 17.1 版:https ://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-changelog-ssms 并运行 C:\Program Files (x86)\Microsoft SQL Server \140\Tools\Binn\ManagementStudio\Ssms.exe

于 2017-06-12T13:35:19.593 回答
0

好的。我看到这里的问题是您正在使用的版本。您正在使用 SSMS 16.3

请确保您使用最新版本的 SSMS。在撰写本文时,当前版本为 16.5.3。在这里下载。请注意,Microsoft 每月都会对 SSMS 进行补丁/更新。

于 2017-03-21T05:23:38.563 回答