创建内存优化表

适用范围:SQL Server Azure 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  
    --
    

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

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

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

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

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

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

    该屏幕截图显示了表设计器,其中显示仅限架构内存优化表。

备注

表设计器还支持可在创建内存优化表时配置的哈希索引、列存储索引。

后续步骤