有一种寒冷忘穿秋裤
2017-12-26 04:03
采纳率: 0%
浏览 2.3k

Sql Server GUID会重复?

项目目前在测试阶段,偶尔间发现有重复的GUID,如图所示。可以肯定的是,CRMId字段不会手动插入数据库。而且,数据量才几条,为什么会有重复的?
图片说明

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • threenewbee 2017-12-26 04:11

    没有遇到这个问题,非常怀疑是你插入的代码逻辑有问题,或者有手工修改过。

    打赏 评论
  • xkk_4106 2017-12-26 04:20

    只能说在短时间内大批量导入数据的时候会出现,其内部的hash算法运算就会出现重复数据,大概是(千万级)短时间导入出现过GUID 重复,不过我们还是可以放心使用,在某一范围内是没问题的

    打赏 评论
  • qq_32226719 2017-12-26 04:20

    1、反对说不会重复的答案,因为GUID严格来讲只是重复的概率比较低。2、也反对目前所有说会重复的答案,因为他们无一例外的没有提供靠谱的解决方案,例如自增就一定不会重复?全局唯一怎么保证?简而言之,世界上不存在绝对的事情,GUID在低强度的数据量下产生重复的概率是可以接受的,就像哈系算法的冲撞概率在一定程度下是可以被接受的。你可以参考在你的使用场景中GUID重复的概率是否在可接受范围内,也就是不会明显成为系统的可靠性短板,不会导致无法挽回的灾难性后果。譬如说虽然会导致灾难性后果,但地震海啸和核爆也会,而在你的场景中GUID重复的概率不高于地震海啸和核爆那就没啥问题。其实绝大多数GUID重复的场景都是不当使用造成的,例如短时间大量产生ID,计算机硬件标识被破坏,时间倒流,采用不同算法算出的GUID,自行发明有缺陷的算法等等等等

    作者:Ivony
    链接:https://www.zhihu.com/question/20890168/answer/58558911
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    打赏 评论
  • Three-Autumn 2017-12-26 05:13

    可以放心使用,在某一范围内是没问题的

    打赏 评论
  • qq_33911195 2017-12-26 05:32

    算法有问题,去看看你的算法部分的代码

    打赏 评论
  • 流尺水 2017-12-26 06:09

    99.9999%的可能是你的代码逻辑有问题,比如上一个值没有清除等,完全自动生成的基本不可能出现这种问题

    打赏 评论
  • 灵易联盟 2017-12-27 00:22

    没遇到过,,,我这里通常是加上自增段 guid段,且guid主键~~

    打赏 评论

相关推荐 更多相似问题