创建内存优化表

重要

Azure Data Studio 将于 2026 年 2 月 28 日停用。 建议使用 Visual Studio Code。 有关迁移到 Visual Studio Code 的详细信息,请访问 Azure Data Studio 发生了什么情况?

适用范围:SQL ServerAzure SQL 数据库Azure SQL 托管实例

内存优化表是 SQL Server 的一项功能,其中整个表驻留在内存中。 表数据的一个备份副本保存在磁盘上。 内存优化表中的数据仅在数据库恢复期间从磁盘读取,例如在服务器重启后。 内存优化表必须属于文件组,并且可以在 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
        --
    

    上述代码新建数据库,向数据库添加文件组,向文件组添加文件,最后将添加到该数据库的所有内存优化表的隔离级别设置为“快照”。

  2. 接下来,创建表,方法是从对象资源管理器打开 imoltp 数据库,右键单击“Tables”文件夹并选择“新建表”。 这会打开表设计器视图。 为此表分配主密钥(通过取消选中“主密钥”设置中的“聚集”复选框来确保该主密钥是非聚集的)。

    表设计器的屏幕截图,其中显示了如何使用非聚集主键创建内存优化表。

  3. 在“表属性”窗格中,选中 内存优化 复选框。 这会启用持续性下拉列表,可以在其中选择是仅希望架构存储在内存中还是同时存储架构和数据。 选择“架构”只会将数据库的架构保存到内存中。 如下面所示,脚本会更新以反映更改。

    表设计器的屏幕截图,其中显示了使用仅限架构配置的内存优化表。

    选择“架构”只会将架构保存到内存中。 选择 架构和数据 将架构和数据保存到内存中。 请注意脚本中的更改。

备注

表设计器还支持哈希索引和列存储索引,这些索引可以在创建内存优化表时进行配置。

下一步