質問

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

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

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

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

役に立ちましたか?

解決

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

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

欠点の1つは、「安全」ではないことです。次のシーケンシャルGUIDを推測できるためです。

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

他のヒント

シーケンシャルGUIDを使用すると、常に最後の値より大きい値を使用するようになります。インデックス付きフィールドの場合、これは重要です。スペクトル全体にランダムに挿入する代わりに、常に最後の「ページ」の最後に挿入します。特にuniqueidentifier列がクラスター化インデックスでもある場合、ページ分割が大幅に削減されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top