複寫至記憶體最佳化資料表訂閱者
適用於:SQL Server Azure SQL 受控執行個體
作為快照集和異動複寫訂閱者的資料表 (不包括點對點異動複寫) 可以設定為記憶體最佳化資料表。 其他複寫組態與記憶體最佳化資料表不相容。 此功能從 SQL Server 2016 (13.x) 開始提供。
需要兩個組態
將訂閱者資料庫設定為支援對記憶體最佳化資料表的複寫
使用 sp_addsubscription (Transact-SQL) 或 sp_changesubscription (Transact-SQL),將 @memory_optimized 屬性設定為 true。
將發行項設定為支援對記憶體最佳化資料表的複寫
使用 sp_addarticle (Transact-SQL) 或 sp_changearticle (Transact-SQL) 來設定
@schema_option = 0x40000000000
發行項選項。
將記憶體最佳化資料表設定為訂閱者
建立交易式發行集。 如需詳細資訊,請參閱建立發行集。
將發行項加入至發行集。 如需詳細資訊,請參閱 定義發行項。
如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為
0x40000000000開始,將提供這項功能。在 [發行項屬性] 視窗中,將 啟用記憶體最佳化 設定為 [true] 。
啟動快照集代理程式作業來產生此發行集的初始快照集。 如需詳細資訊,請參閱 建立和套用初始快照集。
現在建立一項新訂閱。 在 [新增訂閱精靈] 中,將 記憶體最佳化訂閱 設定為 [true] 。
記憶體最佳化資料表現在應該會開始接收來自發行者的更新。
重新設定現有的交易複寫
在 Management Studio 中前往訂閱屬性,將 [記憶體最佳化訂閱] 設定為 true。 重新初始化訂閱之前,不會套用所做的變更。
如果使用 Transact-SQL 進行設定,請將 sp_addsubscription 預存程序的新 @memory_optimized 參數設為 true。
在 Management Studio 中前往發行集的發行項屬性,將 [啟用記憶體] 最佳化設為 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。