2009-05-04 106 views
4

我已經閱讀了這裏的各種問題/答案,基本上表明在uniqueidentifier列上聚簇索引對性能的原因而言是一個糟糕的選擇。無論如何,我需要使用uniqueidentifier作爲我的主鍵,我不想使用newsequentialid(),因爲生成的值彼此太相似(我需要更多的隨機ID,因此用戶無法[合理]猜測'另一個ID)。SQL Server中唯一標識符列上的聚簇/非聚簇索引

那麼,索引這個PK的最好方法是什麼?即使這一列上的聚集索引不理想,它是否比「獨特的,非聚集的」索引更好?

我使用的是SQL Server 2005中

回答

9

首先,如果你要使用NEWID()實現隨機性(不僅僅是尋找隨機的),你就麻煩了。

它通常並不理想,因爲其他索引將引用聚簇索引鍵,長聚簇索引鍵會降低所有索引的性能。您可以創建一個IDENTITY整數列,並使該聚簇索引只在uniqueidentifier列上創建非聚簇唯一索引。