2

Guidsに基づく主キーは(断片化のために)最高のパフォーマンスを発揮しないことは知っていますが、それらはグローバルに一意であり、レプリケーションシナリオを可能にします。

一方、統合識別子は、スケーラビリティを犠牲にしてパフォーマンスを向上させます。

しかし、どのようなシナリオで、誰かが主キーとしてシーケンシャルuniqueidentifierを使用したいと思いますか?GUIDの目的を上回っていると思いますが、それでも時々、その後のことについて言及しているのを目にします。

ここで何が恋しいですか?

4

2 に答える 2

6

SQL Server 2005 でシーケンシャル GUID として一般に知られているもの (NEWSEQUENTIALID() によって生成される) は、通常の GUID の問題を克服するための試みです。

それら依然として普遍的にユニークですが、常に上昇しています。これは、レプリケーションに使用でき、従来の GUID よりも挿入パフォーマンスがはるかに優れていることを意味します。

1 つの欠点は、次の連続した 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 に答える