使用預計算分割槽優化引數化

iSQlServer發表於2008-12-22

預計算分割槽是一種效能優化方法,可用於已篩選的合併釋出。 預計算分割槽也是在已篩選的釋出上使用邏輯記錄的一項要求。 有關邏輯記錄的詳細資訊,請參閱通過邏輯記錄對相關行的更改進行分組。

訂閱伺服器與釋出伺服器同步時,釋出伺服器必須計算訂閱伺服器的篩選器,以確定哪些行屬於該訂閱伺服器的分割槽或資料集。 我們將為接收已篩選資料集的每個訂閱伺服器確定釋出伺服器上的更改的分割槽成員身份這一過程稱為“分割槽計算”。 如果沒有預計算分割槽,那麼,自上次為特定訂閱伺服器執行合併代理之後,對釋出伺服器上已篩選列每進行一次更改都必須執行分割槽計算,而且對與該釋出伺服器同步的每個訂閱伺服器都要重複這一過程。

但是,如果釋出伺服器和訂閱伺服器在 Microsoft SQL Server 2005 或更高版本上執行並且您使用了預計算分割槽,那麼釋出伺服器上所有更改的分割槽成員身份在進行更改時即已預計算並持久化。因此,當訂閱伺服器與釋出伺服器同步時,它可以立即開始下載與其分割槽相關的更改,而不必執行分割槽計算過程。 當釋出中有大量更改、訂閱伺服器或專案時,這樣可以顯著提高效能。

除了使用預計算分割槽外,預先生成快照和/或允許訂閱伺服器在第一次同步時還請求生成快照和應用快照。 使用以上選項中的一個或兩個可以為使用引數化篩選器的釋出提供快照。 如果未指定任一選項,將使用一系列的 SELECT 和 INSERT 語句初始化訂閱,而不是使用 bcp 實用工具;此過程的速度將更慢。 有關詳細資訊,請參閱帶有引數化篩選器的合併釋出的快照。

使用預計算分割槽

預設情況下,在遵循上述指導原則的所有新發布和現有釋出上均啟用了預計算分割槽。 可通過 SQL Server Management Studio 或通過程式設計方式更改此設定。 有關詳細資訊,請參閱以下主題:

SQL Server Management Studio: 如何優化引數化行篩選器 (SQL Server Management Studio)

複製 Transact-SQL 程式設計:如何優化引數化行篩選器(複製 Transact-SQL 程式設計)

 使用預計算分割槽的要求
如果滿足下列要求,預設情況下建立新的合併複製時將啟用預計算分割槽,而現有的釋出將自動升級以使用此功能。 如果釋出不滿足下列要求,可對其先進行更改,然後即可啟用預計算分割槽。 如果有些專案滿足這些要求而有些不滿足,請考慮建立兩個釋出,為其中一個釋出啟用預計算分割槽。

篩選器子句的要求
引數化行篩選器中使用的任何函式(如 HOST_NAME() 和 SUSER_SNAME()),都應直接出現在引數化篩選器子句中,而不能巢狀在檢視或動態函式內。 有關這些函式的詳細資訊,請參閱 HOST_NAME (Transact-SQL)、SUSER_SNAME (Transact-SQL) 和引數化行篩選器。

建立分割槽後,不應更改為每個訂閱伺服器返回的值。 例如,如果在篩選器中使用 HOST_NAME()(且不覆蓋 HOST_NAME() 值),請不要更改訂閱伺服器上的計算機名稱。

聯接篩選器不應包含動態函式(如 HOST_NAME() 和 SUSER_SNAME(),此類函式會根據正在同步的訂閱伺服器計算出不同的值)。 只有引數化行篩選器可以包含動態函式。

篩選器子句中不能使用不確定性函式。 有關不確定性函式的詳細資訊,請參閱確定性函式和不確定性函式。

在聯接篩選器子句或引數化篩選器子句中引用的檢視不應包含動態函式。

釋出中不應有迴圈聯接篩選器關係。

資料庫排序規則
如果使用了預計算分割槽,進行比較時始終使用資料庫的排序規則,而不使用表或列的排序規則。 請考慮下列方案:

具有區分大小寫排序規則的資料庫包含一個具有不區分大小寫排序規則的表。

該表包含一個 ComputerName 列,它與引數化篩選器中的訂閱伺服器的主機名相比較。

該表在此列中包含一個值為“MYCOMPUTER”的行和一個值為“mycomputer”的行。

如果訂閱伺服器與主機名“mycomputer”同步,則訂閱伺服器只能收到一行,因為比較是區分大小寫的(資料庫的排序規則)。 如果未使用預計算分割槽,訂閱伺服器會收到這兩行,因為該表具有不區分大小寫的排序規則。

 預計算分割槽的效能
在將更改從訂閱伺服器上載到釋出伺服器時,儘管使用預計算分割槽會產生少量的效能開銷,但大部分合並處理時間用於計算分割槽以及將更改從釋出伺服器下載到訂閱伺服器上,所以淨的效能收益仍然很顯著。 根據併發同步的訂閱伺服器的數目以及將行從一個分割槽移動到另一分割槽的每個同步的更新數目的不同,效能收益也會有所不同。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-520820/,如需轉載,請註明出處,否則將追究法律責任。

相關文章