本人是初学者求数据同步的好方法.这是我现在做的:
1.语言是C#.环境是.NET2005
2.用ACCESS保存客户端的数据(离线状态).在线在状态都是先添加到本地再往服务器添加
3.服务器是用SQL SERVER.
4.点击连线的时候就把客户端需更新的数据整合成一个DS然后通过WEBSERVER传到服务器然后循环更新.
5.WEBSERVER更新顺序是先把本地的数据更新到服务器.然后再在服务器读取其它客户端更新的记录整合成一个DS返回给客户端.到客户端后再以循环方法更新本地的ACCESS
做过测试数据量上到5000或更多的时候,性能真是很难接受.主要是要记录一条条循环更新.大侠请点时最好附上一点代码,这样比较容易理解.谢谢!

解决方案 »

  1.   

    数据同步要采用差异同步,不能连锅端
    SqlServer有意一个字段类型:timestamp
    也就是时间戳
    这个字段能够自动记录每条记录的更新时间戳
    利用这个字段可以得到两个数据库存在差异的纪录集
    这样可以大大减少同步的数据量
      

  2.   

    ref:
    http://blog.csdn.net/sunsnow8/archive/2005/05/22/378222.aspx
      

  3.   


    非常感谢你(killerwc(刀耐特混混)) .我现在都有用一个字段来记录每条记录的更新时间.同时用一张表来记录该客户端最后的同步更新时间,要同步的时候我就会这个时间打后的记录全部查询出来然后通过WEBSERVER更新到服务器的SQL SERVER中.你讲的那个时间戳方法,能不能提供一个具体的例子来供学习下,谢谢!
      

  4.   

    thelostland(落日忍者) 你好!我已经用左后台来处理了.但只是性能都不见提高很多.只是不会影响操作的继续操作而以.
      

  5.   

    服务端:纪录加一个导入时间的字段,毫秒级,unique,可能的话作为聚集索引,客户端使用这个字段获得增量数据。考虑到多个客户端更新可作并发处理。
    客户端:更新本地access后将数据上传。获取数据时客户端保留获取时间,注意排除本身上传数据。
    如果是智能客户端的话,这样虽然可以实现离线编辑和浏览,但是相当于每个客户端保留一份全局数据库数据副本。如果可能的话可以考虑将数据按某个属性分割,如客户端保留数据分页缓存。看法不成熟,请指正。