建立記憶體最佳化的資料表
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
經記憶體最佳化的資料表是 SQL Server 的一項功能,可讓整個資料表位於記憶體中。 資料表資料的第二個複本會保留在磁碟上。 記憶體最佳化資料表中的資料只會在資料庫復原時從磁碟中讀取。 例如,伺服器重新啟動後。 您可以在 Azure Data Studio 的資料表設計工具中建立經記憶體最佳化的資料表。
注意
經記憶體最佳化的資料表必須屬於檔案群組。 若要深入了解這些內容,請參閱記憶體最佳化檔案群組這份文件。
經記憶體最佳化的資料表必須具有非叢集主索引鍵。 如需經記憶體最佳化的資料表簡介,請參閱經記憶體最佳化的資料表簡介一文。 此外,經記憶體最佳化的資料表全都必須有至少一個索引。
建立記憶體最佳化資料表
若要建立經記憶體最佳化的資料表,我們必須確保已針對資料庫建立檔案群組。 在物件總管中,從伺服器層級開啟新的查詢編輯器視窗,因為我們將會建立全新的資料庫,並將經記憶體最佳化的資料表置於其中。 在查詢編輯器中,複製、貼上並執行下列程式碼:
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。
接下來,從物件總管開啟 imoltp 資料庫,以滑鼠右鍵按一下 [資料表] 資料夾,然後選取 [新增資料表],以建立您的資料表。 這會開啟資料表設計工具檢視。 為這個資料表指派主索引鍵 (請確定這個主索引鍵並未屬於叢集,方法是取消核取 [主索引鍵] 設定中的 [叢集] 核取方塊)
在 [資料表屬性] 窗格中。 選取 [記憶體最佳化] 核取方塊。 這會啟用持久性下拉式清單,您可以在其中選擇是否僅將「結構描述」儲存在記憶體中,或是要將「結構描述和資料」都儲存在記憶體中。 選擇 [結構描述] 只會將資料庫的結構描述儲存至記憶體。 如下面所示,會更新指令碼以反映變更。
選擇 [結構描述] 只會將結構描述儲存至記憶體。 選擇 [結構描述和資料] 則會將結構描述和資料都儲存至記憶體。 請注意指令碼中的變更。
注意
資料表設計工具也支援雜湊索引和資料行存放區索引,而且您可以在建立經記憶體最佳化的資料表時設定這些索引。