比较远程数据访问与合并复制

要确定是在 SQL Server Compact 应用程序中使用远程数据访问 (RDA) 还是使用复制,取决于您的智能设备应用程序的用途、功能、规模和需求。每个连接数据解决方案都有不同的优点和缺点。

RDA 和复制都适用于无线传输。使用压缩可减小传输的数据量。在传输期间可以使用加密来保护敏感的用户数据。

功能比较

功能 复制 RDA

交换所跟踪的数据更改

在服务器和客户端之间复制更改

列级跟踪 – 通过仅传输更改的列数据,减少数据传输量

行级跟踪 – 传输整行

仅从客户端到服务器推送更改。完成接收服务器更改所需的客户端数据的更新。

行级跟踪 – 传输整行。

可以从其传播数据的表的数量

多个表 – 与在发布中定义的一样多

每个 RDA 方法对应一个表。

可以传播的表的类型

控制数据流的不同类型的表

在发布(服务器)中添加或删除表是自动复制的,而无须在客户端上重新初始化订阅

不适用

在服务器上添加或删除表不会自动复制到客户端。

约束和索引

引用完整性约束和索引是从服务器自动复制的。

不会复制引用完整性约束,可以选择复制索引。其他架构定义必须在客户端上定义。

冲突

冲突包括由不同用户更改的数据和因错误而未应用的行。

在服务器上解决和管理冲突

支持内置和自定义冲突解决程序。

冲突仅包括因错误而未应用的行。RDA 不检测数据是否已由其他用户更改。

不管理冲突,但可以选择在客户端上的错误表中进行报告。

无冲突解决程序。

架构更改

可以复制架构更改(如添加/删除列、添加/删除约束或更改列定义)。

不允许进行架构更改。如果架构已更改,则客户端必须删除客户端上的表,并再次从服务器请求所有数据。根据架构更改的不同,推送可能会失败。

标识列

手动和自动处理标识范围。支持 BigInt 和 Int 列。

手动处理标识范围。支持 BigInt 和 Int 列。

数据/架构定义

配置发布时在服务器上进行;创建订阅时在客户端上自动对其进行定义。

将数据从服务器请求到客户端时,在客户端上定义数据和架构。

工具 (UI)

支持用于创建和管理订阅的大量工具,以及用于管理多个订阅、观察性能和同步时间的监视工具

不支持任何工具。

服务器入侵

将表和列添加到服务器数据库以管理复制。

不对服务器上的数据库进行更改。

重要

由于设计局限,以后的版本中将删除远程数据访问 (RDA)。如果您当前在使用 RDA,您应该考虑转换到 Microsoft Synchronization Services for ADO.NET。如果您打算在新的应用程序中使用 RDA,您就该换个角度考虑使用合并复制或 Synchronization Services。请注意,Synchronization Services 当前同时可用于台式设备和移动设备。