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