如何在Sync上避免System.OutOfMemoryException

时间:2012-02-01 14:23:51

标签: .net tsql sql-server-ce microsoft-sync-framework

我找不到类似的帖子,但MSDN中的一篇我不理解的文章会链接文章并寻求帮助。

我正在使用Sync-Framework在Sql-Server-CE和Sql-Server-R2实例之间进行同步。不幸的是我很快就遇到了OutOfMemory-Exception(我正在同步8个表,并且已经在第一个表上发生了异常),所以我在考虑下载较小的包的方法,并在MSDN上找到以下文章,该文章描述了如何添加批量化为同步。

不幸的是,这不是一个单行(我真的质疑同步框架的有用性,当你必须手动编程一切......)但代码是非常直接的(我想...还没测试它)除了一点点的SQL,我很遗憾不知道。

http://msdn.microsoft.com/en-us/library/bb902828%28v=sql.100%29.aspx

这是文章,我的问题是:有人知道吗

[ ... ]
SELECT MIN(UpdateTimestamp) AS TimestampCol FROM Sales.Customer
UNION 
SELECT MIN(InsertTimestamp) AS TimestampCol FROM Sales.Customer
[ ... ]

表示?我的SQL表中没有TimeStamps,也没有在Tombstones中,所有Sync-Framework添加的行都不是TimeStamps。 我不知道代码应该做什么,也不知道它做了什么。 有人能帮助我吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

您是在首次同步时甚至在后续同步时获得内存不足消息吗?

这是在同步框架中序列化大型数据集的已知问题

结帐http://jtabadero.wordpress.com/2010/03/08/sync-framework-wcf-based-synchronization-for-offline-scenario-%e2%80%93-using-custom-dataset-serialization/

答案 1 :(得分:0)

时间戳位于同步框架创建的跟踪表中。对于由框架同步的每个表,系统将生成一个跟踪同步表的跟踪模式。查找名为Yourtablename_tracking的表。在这些表中,您将看到local_update_peer_timestamp等字段 - 类型timestamp或scope_update_peer_timestamp - 类型bigint。