主キー値の大部分として標準のソートされていない GUID を使用し、クラスター化されたインデックスでも使用するブラウン フィールド SQL Server 2005 データベースを使用しています (これはパフォーマンスに悪影響を及ぼします)。
これらを順次 GUID に変更するにはどうすればよいですか? 課題の 1 つは、それぞれの主キーを変更するときにすべての外部キー値を置き換えることです。
この種の変換を実行するためのツールまたはスクリプトを知っていますか?
主キー値の大部分として標準のソートされていない GUID を使用し、クラスター化されたインデックスでも使用するブラウン フィールド SQL Server 2005 データベースを使用しています (これはパフォーマンスに悪影響を及ぼします)。
これらを順次 GUID に変更するにはどうすればよいですか? 課題の 1 つは、それぞれの主キーを変更するときにすべての外部キー値を置き換えることです。
この種の変換を実行するためのツールまたはスクリプトを知っていますか?
デフォルトでは newsequentialid() 関数しか使用できないことに注意してください
2列の新しいテーブルを作成します。元のテーブルのキーをこのテーブルに挿入します(他の列はそのままにしておきます)
元のテーブルに結合し、newsequantialid で PK を更新します。カスケード更新がある場合、FK は自分自身で更新する必要があります
SequentialGuidは、GuidがPKである場合のパフォーマンスに最適です。これが彼らの存在の背後にある理由です。
それがパフォーマンスに悪いことをどのように知っていますか?
GUID の利点は、複数のプロセスが同時にレコードを作成することを心配する必要がないことです。プログラムによっては、コードを大幅に簡素化できます。