【发布时间】:2010-09-16 03:20:40
【问题描述】:
我正在开发 SQL Server 2000 中的数据库,该数据库为使用与其关联的应用程序的每个用户使用一个 GUID。不知何故,两个用户最终使用了相同的 GUID。我知道微软使用一种算法来生成随机 GUID,它导致冲突的可能性极低,但仍然可能发生冲突吗?
【问题讨论】:
-
每个人说不都是错的。我已经将 1 个 UniqueIdentifier 与不到 50 万条记录的数据集相冲突,MSSQL 2008 R2
-
@Behrooz Yikes。感谢我们的朋友生日悖论,这并非不可能,但是对于完全随机的 v4 GUID,它仍然非常不幸。也许您使用的是较弱的 GUID 生成策略?
-
@Behrooz 哇。这真是令人震惊的运气。
-
@Behrooz 这可能是 MSSQL 中使用的有缺陷的伪随机数(如果他们的生成器中有 32 位种子,或者考虑到他们的软件质量,我不会感到惊讶)。数学不会说谎。这种可能性是如此之小,以至于您可能是 99.9999999999(以及之后的很多 9)% MSSQL guid 生成器有缺陷(或者可能是用于生成 GUID 的伪随机生成器)或者您犯了错误。
-
爱在这个确切的时刻,问题和所选答案都有 128 分。巧合? ??????
标签: sql-server guid