2

我知道基于 Guid 的主键没有最好的性能(由于碎片),但它们是全局唯一的并且允许复制场景。

另一方面,整体标识符以可伸缩性为代价具有更高的性能。

但是在什么情况下有人会想要使用顺序唯一标识符作为主键呢?我认为,它超出了 GUID 的目的,但我仍然不时看到提及后续事件。

我在这里想念什么?

4

2 回答 2

6

在 SQL Server 2005 中通常称为顺序 guid(由 NEWSEQUENTIALID() 生成)是为了克服普通 guid 的问题。

它们仍然普遍独特的,但也总是在上升。这意味着它们可以用于复制并且具有比传统 GUID 更好的插入性能。

一个缺点是它们不是“安全的”,因为可以猜测下一个顺序 guid。

http://msdn.microsoft.com/en-us/library/ms189786.aspx

于 2008-10-08T19:16:30.050 回答
1

使用顺序 guid 可确保您始终使用大于最后一个值的值。对于索引字段,这很重要。您不是在整个频谱中随机插入,而是始终在数据的最后一个“页面”的末尾插入,从而大大减少了页面拆分,尤其是在您的 uniqueidentifier 列也是您的聚集索引的情况下。

于 2009-01-06T18:40:06.200 回答