6

私はuser_info5つの異なる場所にテーブルを持っています。user_info次に、すべての行を中央のテーブルに統合する必要があります。これを行うには、ソース テーブルの各行に一意の ID が必要です。すべての行が中央テーブルに入ると、各ユーザーは一意の ID を持つ必要があるためです。

今私の質問は次のとおりです。

  1. uniqueidentifier NEWID()ソーステーブルごとに使用する場合、グローバルおよびライフタイムで一意になるか、重複する可能性がありますか?

  2. SQL Server はどのように を作成しNEWID()ますか? 鍵生成構造を知る必要があります。

4

1 に答える 1

8

はい、マシン間で重複する可能性はありません。

NEWID()(クロックからの)疑似乱数とプライマリ NIC の MAC アドレスの組み合わせに基づいています。

ただし、このような乱数をテーブルのクラスター化されたキーとして挿入すると、パフォーマンスが低下します。許容可能なパフォーマンスを維持しながらNEWSEQUENTIALID()衝突回避の利点を提供する GUID を生成するには、 または COMB タイプの関数を検討する必要があります。NEWID()INSERT

于 2012-09-23T06:59:21.663 に答える