0

我正在使用同步框架將SQL Server 2008數據庫與移動設備上的sqlCE進行同步。除了一些問題,一切看起來都很好其中之一是:
如果我想同步1000或更多的行,我在移動設備上獲得OutOfMemory異常(同步完成很好,因爲它後我檢查一些行的數據,它看起來同步)。我認爲可能太大的xmls在移動設備和服務器之間輪換(對於100行,evrth工作得很好)...這就是爲什麼我問如何拆分發送的數據。但也許我錯了。我沒有在這方面找到任何資源,所以我不完全知道什麼可以吃這麼多的內存來添加60Kb的緊湊型數據庫。如何在同步框架中拆分同步過程

回答

1

您需要實施某種配料。

它的一個相當天真的版本顯示在這裏: http://msdn.microsoft.com/en-us/library/bb902828.aspx

我見過你對一些filtring感興趣。如果這會過濾出一些或者說很多的行,我會推薦編寫你自己的批處理邏輯。我們當前使用的那個將@sync_new_received_anchor設置爲要同步的@sync_batch_size:th行的錨點。

在一個相當簡化的方式邏輯是這樣的:

SELECT @sync_new_received_anchor = MAX(ThisBatch.ChangeVersion) 
    FROM (SELECT TOP (@sync_batch_size) CT.SYS_CHANGE_VERSION AS ChangeVersion 
     FROM TabletoSync 
      INNER JOIN CHANGETABLE(CHANGES [TabletoSync], 
           @sync_last_received_anchor) AS CT 
      ON TabletoSync. TabletoSyncID = CT. TabletoSyncID 
      WHERE TabletoSync.FilterColumn = @ToClient 
      ORDER BY CT.SYS_CHANGE_VERSION ASC) AS ThisBatch 
+0

謝謝!我稍後再嘗試一下,因爲現在有一些其他的任務。如果有幫助,肯定會接受答案,但我明白你的意見,所以謝謝。 – 0x49D1 2010-01-27 05:55:58

+0

好,只要讓我知道你是否想讓我澄清一些事情。 – 2010-01-27 08:31:05