自娱自乐

本人收藏的一些文章,供学习使用
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

GUID与Identity的优缺点

Posted on 2008-08-13 09:13  lwjacky  阅读(841)  评论(0)    收藏  举报
GUID与Identity的优缺点:
前者是全球唯一的,如果同一个Table在多个DB,或者在多个Server中存在,而到了某个时候这些相同Schema的Table中的数据要合并到一起,这个时候GUID的优势就体现出来了。这些数据的ID绝对不会发生重复。

[bookonline]中的描述
自动编号和标识符列
对 任何表都可创建包含系统所生成序号值的一个标识符列,该序号值唯一标识表中的一行。例如,当在表中插入行时,标识符列可自动为应用程序产生唯一的客户收据 号码。标识符列在其所定义的表中包含的数值通常是唯一的。这意味着在包含标识符列的其它表中可使用与之相同的数值进行标识。但是,由于标识符值通常是在一 个独立表的上下文中使用而不与其它表中的标识符列发生关联,所以通常不会发生问题。

可在每个表上创建一个全局唯一标识符列,而该列中包含 对世界上所有网络计算机均不重复的值。当必须对来自多个数据库系统的相似数据进行合并时(例如,在包含位于世界各地分公司的数据的客户帐单系统中),包含 全局唯一值的列很有用。当数据汇集到中心进行合并和制作报表时,使用全局唯一值可防止不同国家/地区的客户拥有相同的帐单号或客户 ID。

Microsoft SQL Server 2000 在合并复制中使用全局唯一标识符列,以确保在表的多个复本间唯一标识行。

如果没有前文所述的那种需求发生,不建议使用GUID,它的性能比int类型的identity差很多。

GUID 在并发性上好于identity
但是空间引索就不如identity了