適用於:SQL Server
Azure SQL 受控執行個體
你可以將作為快照和交易複製訂閱者的資料表(點對點交易複製除外)配置為記憶體優化資料表。 記憶體優化的表格與其他複製配置不相容。 此功能自 SQL Server 2016(13.x)起開始提供。
需要兩項設定
將訂閱者資料庫設定為支援對記憶體最佳化資料表的複寫
使用 sp_addsubscription (Transact-SQL) 或 sp_changesubscription (Transact-SQL),將 @memory_optimized 屬性設定為 true。
將發行項設定為支援對記憶體最佳化資料表的複寫
使用
@schema_option = 0x40000000000或 sp_changearticle (Transact-SQL),設定發行項目的 選項。
將記憶體最佳化資料表設定為訂閱者
建立交易式發行集。 如需詳細資訊,請參閱 建立出版物。
將文章加入出版物。 如需詳細資訊,請參閱 定義發行項。
如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為
0x40000000000。在文章屬性視窗中,將 啟用記憶體優化 設 為 true。
啟動 快照集代理程式 作業,以產生此發行的初始快照。 如需詳細資訊,請參閱 建立和套用初始快照集。
現在建立一項新訂閱。 在 [新增訂閱精靈] 中,將 記憶體最佳化訂閱 設定為 [true] 。
記憶體最佳化資料表現在應會開始接收來自發行端的更新。
重新設定現有的交易複寫
在 Management Studio 中前往訂閱屬性,將 [記憶體最佳化訂閱] 設定為 true。 這些變更只有在你重新初始化訂閱後才會生效。
如果使用 Transact-SQL 進行設定,請將 sp_addsubscription 預存程序的新 @memory_optimized 參數設為 true。
在 Management Studio 中,前往某發行的發行項屬性,並將 Enable Memory optimization 設定為 true。
如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為
0x40000000000。記憶體優化的資料表不支援叢集索引。 若要讓複製處理此限制,將目標目錄轉換為非叢集索引,請將「 記憶體最佳化文章的群組索引轉換為非叢集 」設為 true。
如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為 0x0000080000000000。
重新生成快照。
重新初始化這項訂閱。
備註與限制
僅支援單向異動複寫。 不支援點對點交易複製。
你無法發佈記憶體優化的資料表。
你無法在發行版上將複製表設定為記憶體最佳化資料表。
無法在合併式複寫中包含記憶體最佳化資料表。
在訂閱者端,你可以將涉及交易複製的資料表配置為記憶體優化資料表,但訂閱者資料表必須符合記憶體最佳化資料表的要求。 此要求施加以下限制:
複寫到訂閱者之記憶體最佳化資料表的資料表,其資料類型僅限於記憶體最佳化資料表所允許使用的類型。 如需詳細資訊,請參閱 記憶體內部 OLTP 支援的資料類型。
記憶體最佳化資料表中並未支援所有的 Transact-SQL 功能。 如需詳細資訊,請參閱記憶體內部 OLTP 不支援的 Transact-SQL 建構。
修改結構描述檔案
如果你使用記憶體優化資料表選項
DURABILITY = SCHEMA_AND_DATA,該資料表必須有非叢集的主鍵索引。ANSI_PADDING必須是ON。