Share via


建立記憶體最佳化的資料表

適用於:SQL ServerAzure SQL DatabaseAzure 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 資料庫,以滑鼠右鍵按一下 [資料表] 資料夾,然後選取 [新增資料表],以建立您的資料表。 這會開啟資料表設計工具檢視。 為這個資料表指派主索引鍵 (請確定這個主索引鍵並未屬於叢集,方法是取消核取 [主索引鍵] 設定中的 [叢集] 核取方塊)

    Screenshot of Table Designer showing how to create a memory-optimized table with non-clustered primary key.

  3. 在 [資料表屬性] 窗格中。 選取 [記憶體最佳化] 核取方塊。 這會啟用持久性下拉式清單,您可以在其中選擇是否僅將「結構描述」儲存在記憶體中,或是要將「結構描述和資料」都儲存在記憶體中。 選擇 [結構描述] 只會將資料庫的結構描述儲存至記憶體。 如下面所示,會更新指令碼以反映變更。

    Screenshot of Table Designer showing Memory-Optimized Table with Schema only configuration.

    選擇 [結構描述] 只會將結構描述儲存至記憶體。 選擇 [結構描述和資料] 則會將結構描述和資料都儲存至記憶體。 請注意指令碼中的變更。

    Screenshot of Table Designer showing schema only memory-optimized table.

注意

資料表設計工具也支援雜湊索引和資料行存放區索引,而且您可以在建立經記憶體最佳化的資料表時設定這些索引。

下一步