Wie alle nicht-sequenzielles GUIDs mit sequentieller ersetzen?
-
06-07-2019 - |
Frage
Ich habe eine braun-Feld SQL Server 2005-Datenbank, die den Standard unsortiert GUIDs als die Mehrheit der Primärschlüssel-Werte und auch in Clustered-Indizes verwendet (die für die Leistung schlecht ist).
Wie soll ich mich über diese sequentielle GUIDs zu ändern? Eine der Herausforderungen wäre all die Fremdschlüsselwerte zu ersetzen, wie ich jede der Primärschlüssel ändern.
Sie wissen von Werkzeugen oder Skripte diese Art von Konvertierung durchführen?
Lösung
nicht vergessen, dass Sie nur die NEWSEQUENTIALID () Funktion als Standard verwenden können,
so erstellen Sie eine neue Tabelle mit zwei Spalten. Stecken Sie den Schlüssel von Ihnen Original-Tabelle in diese ein (lassen Sie die andere Säule heraus, es füllt sich)
kommen wieder auf die ursprüngliche Tabelle und aktualisieren Sie die PK mit newsequantialid, wenn Sie Kaskade die FKs aktualisieren sollten selbst aktualisieren
Andere Tipps
Wie wissen Sie, es für die Leistung schlecht ist?
Der Vorteil von GUIDs ist, dass Sie müssen nicht über mehrere Prozesse sorgen Aufzeichnungen zur gleichen Zeit zu schaffen. Es kann Ihren Code erheblich, je nach Programm vereinfachen.
SequentialGuids sind am besten für die Leistung, wenn die Guid der PK ist. Dies ist der Grund für ihre Existenz.