SQL Server中唯一标识列上的聚集/非聚集索引

4
我已经阅读了这里的各种问题/答案,基本上表明在uniqueidentifier列上具有聚集索引出于性能原因是一个不好的选择。尽管如此,我需要使用uniqueidentifier作为我的主键,并且我不想使用newsequentialid(),因为生成的值太相似(我需要更多随机的ID,以便用户不能[合理地]“猜测”另一个ID)。
那么,最佳的索引方式是什么?即使在此列上的聚集索引不理想,它是否比“唯一的非聚集”索引更好?
我正在使用SQL Server 2005。
1个回答

10
首先,如果你试图使用NEWID()来达到随机性(不仅仅是看起来随机),那么你就有麻烦了。
这通常不是理想的选择,因为其他索引将参考聚集索引键,而长的聚集索引键将降低所有索引的性能。你可以创建一个IDENTITY整数列,并将其作为聚集索引,然后只需在uniqueidentifier列上创建一个非聚集唯一索引。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接