共用方式為


複寫至記憶體最佳化資料表訂閱者

適用於:SQL ServerAzure SQL 受控執行個體

作為快照集和異動複寫訂閱者的資料表 (不包括點對點異動複寫) 可以設定為記憶體最佳化資料表。 其他複寫組態與記憶體最佳化資料表不相容。 此功能從 SQL Server 2016 (13.x) 開始提供。

需要兩個組態

將記憶體最佳化資料表設定為訂閱者

  1. 建立交易式發行集。 如需詳細資訊,請參閱建立發行集

  2. 將發行項加入至發行集。 如需詳細資訊,請參閱 定義發行項

    如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為
    0x40000000000開始,將提供這項功能。

  3. 在 [發行項屬性] 視窗中,將 啟用記憶體最佳化 設定為 [true]

  4. 啟動快照集代理程式作業來產生此發行集的初始快照集。 如需詳細資訊,請參閱 建立和套用初始快照集

  5. 現在建立一項新訂閱。 在 [新增訂閱精靈] 中,將 記憶體最佳化訂閱 設定為 [true]

記憶體最佳化資料表現在應該會開始接收來自發行者的更新。

重新設定現有的交易複寫

  1. 在 Management Studio 中前往訂閱屬性,將 [記憶體最佳化訂閱] 設定為 true。 重新初始化訂閱之前,不會套用所做的變更。

    如果使用 Transact-SQL 進行設定,請將 sp_addsubscription 預存程序的新 @memory_optimized 參數設為 true。

  2. 在 Management Studio 中前往發行集的發行項屬性,將 [啟用記憶體] 最佳化設為 true。

    如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為
    0x40000000000開始,將提供這項功能。

  3. 記憶體最佳化資料表不支援叢集索引。 若要藉由在目的地上將複寫轉換為非叢集索引來處理此項目的話,請將 為記憶體最佳化發行項將叢集索引轉換為非叢集索引 設定為 [true]。

    如果使用 Transact-SQL 進行設定,請將 sp_addarticle 預存程序的 @schema_option 參數設為 0x0000080000000000

  4. 重新產生快照集。

  5. 重新初始化這項訂閱。

備註與限制

僅支援單向異動複寫。 不支援點對點異動複寫。

無法發行記憶體最佳化資料表。

散發者端的複寫資料表無法設定為記憶體最佳化資料表。

合併式複寫無法包含記憶體最佳化資料表。

在訂閱者端,異動複寫中包含的資料表可以設定為記憶體最佳化資料表,但是訂閱者資料表必須符合記憶體最佳化資料表的需求。 需求的限制如下。

修改結構描述檔案

  • 如果使用記憶體最佳化資料表選項 DURABILITY = SCHEMA_AND_DATA ,則資料表必須具有非叢集主索引鍵索引。

  • ANSI_PADDING 必須為 ON。