4

我在这里阅读了各种问题/答案,这些问题/答案基本上表明,出于性能原因,在 uniqueidentifier 列上使用聚集索引是一个糟糕的选择。无论如何,我需要使用 uniqueidentifier 作为我的主键,并且我不想使用 newsequentialid() 因为生成的值彼此太相似(我需要更多随机 ID,所以用户不能 [合理地] '猜测'另一个ID)。

那么,索引这个 PK 的最佳方法是什么?即使此列上的聚集索引并不理想,它是否比“唯一、非聚集”索引更好?

我正在使用 SQL Server 2005。

4

1 回答 1

10

首先,如果你试图用它NEWID()来实现随机性(不仅仅是看起来随机),你就有麻烦了。

这通常不是理想的选择,因为其他索引将引用聚集索引键,而长聚集索引键会降低所有索引的性能。您可以创建一个整数列并将其设为聚集索引,然后在该列IDENTITY上创建一个非聚集唯一索引。uniqueidentifier

于 2009-05-04T17:45:53.660 回答