SQL Server 2005 中复制和远程数据访问功能的技术对比
2005-10-31 16:07:42 来源:WEB开发网核心提示: 架构更改使用复制功能时,在最初创建订阅后可以将架构更改(如添加或删除列,SQL Server 2005 中复制和远程数据访问功能的技术对比(3),添加或删除约束,以及更改列定义)复制到订阅者,而 RDA 仅支持从 sql server(WINDOWS平台上强大的数据库平台) Mobile 到 sql server(W
架构更改
使用复制功能时,在最初创建订阅后可以将架构更改(如添加或删除列,添加或删除约束,以及更改列定义)复制到订阅者。当需要将挂起的架构更改复制到订阅者时,将首先复制架构更改,然后在发布者与订阅者之间交换所导致的增量更改。服务器架构更改(例如,添加列或删除应用程序中未在使用的列)不一定会要求对应用程序进行更改和重新编译。允许对订阅数据库的架构进行细微的更改。有关详细信息,请参阅 sql server(WINDOWS平台上强大的数据库平台) Mobile Books Online 中的“Replication Limitations”。
使用 RDA 时,不支持在服务器上进行架构更改。如果进行了架构更改,从客户端到服务器的推操作可能会失败。如果更改了服务器架构,则客户端必须先删除表,然后再次从服务器拉出所有数据。更改服务器架构可能会要求对应用程序进行更改并重新编译。允许对客户端的架构进行细微的更改。有关详细信息,请参阅 sql server(WINDOWS平台上强大的数据库平台) Mobile Books Online 中的“Remote Data Access (RDA) Limitations”。
简而言之,使用复制功能时,支持服务器架构更改,而且服务器架构更改不会导致订阅者上的数据丢失。但是,使用 RDA 时,不支持服务器架构更改,而且服务器架构更改可能会导致客户端的数据丢失。复制和 RDA 功能均允许对 sql server(WINDOWS平台上强大的数据库平台) Mobile 连接表进行细微的架构更改。
标识列
在许多应用程序中,您可能需要使用递增的编号来管理在客户端数据库中插入的记录。例如,如果用户正在表中输入新订单,则您可能需要为每个订单分配自动递增的编号。使用这类系统时,必须确保这些编号在客户端之间不会引起冲突。对于发布和订阅,复制功能支持 integer 和 bigint 列的自动标识范围管理。使用自动标识范围管理,可以确保无论有多少客户端,都不会发生行冲突。有关使用此复制功能的详细信息,请参阅 sql server(WINDOWS平台上强大的数据库平台) Books Online 中的“Replicating Identity Columns”。
使用 RDA 时,不支持标识列的自动管理。要使用此数据类型属性,必须在整个系统中手动管理值。
约束和索引
由于复制功能支持在发布定义中使用多个表,因此引用完整性约束和索引会自动从服务器复制到订阅数据库。
而由于 RDA 每次只能拉一个表,因此不会传输引用完整性约束,但是可以传输索引。其他架构定义必须在客户端进行定义。
交换跟踪数据更改
使用复制功能时,将分别在发布数据库和 SQL Mobile 数据库中创建系统对象,前者是在创建发布时建立,而后者则是在创建订阅时建立的。这些对象允许在 sql server(WINDOWS平台上强大的数据库平台) 与 sql server(WINDOWS平台上强大的数据库平台) Mobile 之间使用非常强大的数据交换模型。复制功能可用于跟踪发布和订阅数据库中的更改。发布者与订阅者之间的数据流控制有两种跟踪级别:
1.表的行级别跟踪会导致在同步期间传输整个行。这种跟踪级别对依赖于连接速度的数据传输而言可能代价较高,但需要在发布者和订阅者上存储的跟踪信息较少。
2.列级别跟踪不仅跟踪行中的更改,而且还跟踪列级别上的更改,因此可以只将更改的列数据从订阅者传输到发布者,从而减少了传输的数据量。发布者始终会将整个更改的行发送到预定者,原因是它不能确定该行在订阅者中是否实际存在。
有关跟踪级别的详细信息,请参阅 sql server(WINDOWS平台上强大的数据库平台) Mobile Books Online 中的“Using Row-Level and Column-Level Tracking”和 sql server(WINDOWS平台上强大的数据库平台) Books Online 中的“Row-Level Tracking and Column-Level Tracking”。
RDA 使用 sql server(WINDOWS平台上强大的数据库平台) Mobile 数据库中的系统对象来跟踪对数据所做的更改。获得此信息后,RDA 仅将这些更改(特别是更改的行)从 sql server(WINDOWS平台上强大的数据库平台) Mobile 推到 sql server(WINDOWS平台上强大的数据库平台)。但如果 sql server(WINDOWS平台上强大的数据库平台) Mobile 要从 sql server(WINDOWS平台上强大的数据库平台) 检索数据更改,则需要完全刷新客户端数据。
简而言之,复制功能支持增量更改的双向数据交换,因为数据更改是在发布者和订阅者中同时进行跟踪的。而 RDA 仅支持从 sql server(WINDOWS平台上强大的数据库平台) Mobile 到 sql server(WINDOWS平台上强大的数据库平台) 的增量更改数据交换,并且需要对数据进行完全刷新才能将 sql server(WINDOWS平台上强大的数据库平台) 中的更改更新到 sql server(WINDOWS平台上强大的数据库平台) Mobile,因为数据更改仅在 SQL Mobile 数据库中进行跟踪。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接