首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GUID在SQL servers中是唯一的吗?

GUID在SQL servers中是唯一的吗?
EN

Stack Overflow用户
提问于 2013-09-27 18:09:24
回答 4查看 3.1K关注 0票数 2

我一直想知道GUID在sql服务器中的唯一性。

我有一个中央数据库服务器和100个客户端数据库(都是SQL服务器)。我有一个合并复制(双向)设置,用于在客户端和主服务器之间同步数据。同步过程每天会发生2-3次。

对于要同步的每个表,我使用GUID作为PrimaryKey,本地的每个表都添加了新记录,并在本地生成了新的GUID。

当在每个客户端机器和主DB服务器上创建GUID时,它如何确保在所有客户端和主DB上生成唯一的GUID?

它将如何跟踪在其他客户机/服务器数据库中生成GUID,以便它不会重复该GUID?

EN

回答 4

Stack Overflow用户

发布于 2013-09-27 18:16:36

GUID是唯一的(出于您的目的)

互联网上有无休止的争论- I like this one

票数 2
EN

Stack Overflow用户

发布于 2013-09-27 18:17:43

它们的独特性来自于这样一个事实:随机生成相同的GUID的可能性极小,但仅此而已。

但对于您的目的来说,这应该是可以的-它们在分布式系统上应该是唯一的,概率非常高。

票数 2
EN

Stack Overflow用户

发布于 2013-09-27 20:55:23

你将不得不做更多的研究,但我认为GUID是基于MAC地址和时间戳的,如果我没记错的话。

http://www.sqlteam.com/article/uniqueidentifier-vs-identity

我认识一些在GUID上遇到唯一键冲突的MCM。

这怎么会发生呢?好吧,在虚拟世界中,你有虚拟适配器。

如果您将一个虚拟机从一台主机复制到另一台主机,您可以拥有相同的适配器、MAC地址?

现在,如果两个映像同时运行,则不可能获得唯一的GUID。

然而,这种情况很少见。您可以随时向关键字添加另一个字段以使其唯一。

关于是否使用GUID作为集群PK,有一个完整的争论。请记住,任何其他索引都将获取叶(节点)中的PK的副本。对于每个记录x个索引,这是16个字节。

我希望这能帮到你。

约翰

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19048154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档