有人可以解释为什么NEWSEQUENTIALID()会生成部分使用的GUID。
我正在编写的软件使用Entity Framework,并且每当在使用GUID作为主键的表中创建条目时,由于某种原因GUID的节点"组件从未使用过。
这是实体id首先在代码中标记的方式,并没有什么特别之处:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
以下是创建时的一些条目:
30F74F3E-F36B-1410-B730-800000000000
31F74F3E-F36B-1410-B731-800000000000
32F74F3E-F36B-1410-B732-800000000000
33F74F3E-F36B-1410-B733-800000000000
34F74F3E-F36B-1410-B734-800000000000
正如您所见,"节点"组件始终为:80 00 00 00 00 00
是否有一种配置方法(首先是代码或直接在数据库上运行sql)让mssql知道它应该使用" node"如果可能的话?我不想随意使用GUID,因为这在搜索时会有巨大的性能损失。
如果NEWSEQUENTIALID()不可配置,那么不使用"节点"背后的设计原因是什么? GUID的组成部分?