私は、ランダムに生成されたGUIDを使用して、すべてデフォルトの値NewID()
をプライマリキーとして使用して数百万行の本番データベースを用意しています。デフォルトPK値のNewIDからSequential NewIDへの切り替え
今後のSequential NewIDの使用を検討しています。
NEWID()
を使用してランダムに生成したときに、そのGUIDを作成していないという順序で、GUIDの生成中にSQL Serverがどのように知るのですか?
私は、ランダムに生成されたGUIDを使用して、すべてデフォルトの値NewID()
をプライマリキーとして使用して数百万行の本番データベースを用意しています。デフォルトPK値のNewIDからSequential NewIDへの切り替え
今後のSequential NewIDの使用を検討しています。
NEWID()
を使用してランダムに生成したときに、そのGUIDを作成していないという順序で、GUIDの生成中にSQL Serverがどのように知るのですか?
NEWSEQUENTIALID()
を新しいデフォルト値として使用しているようです。
重複のシナリオは心配しないでください。その列のPK制約により、衝突が発生しないことが保証されます。とにかく新しいシーケンシャルGUIDが「上位」になることは保証されません。
であなたを助けるかもしれないいくつかの関連情報Windowsが起動されてから、指定したコンピュータで以前にこの関数によって生成されたGUIDより大きいGUIDを作成します。 Windowsを再起動すると、の下位の範囲からGUIDのが再び開始されますが、引き続きグローバルに一意です。