Wir speichern einige Guids in einer MS SQL-Datenbank. Es gibt einen Legacy-Code, der Guid.ToString()
ausführt und sie dann an ein varchar(64)
übergibt, und es gibt neueren Code, der sie mit einem eindeutigen Bezeichnerparameter übergibt. Wenn Sie die Ergebnisse mit MS SQL Management Studio betrachten, sehen sie anders aus. Die Byte-Reihenfolge der ersten drei Blöcke ist umgekehrt, aber die letzte bleibt gleich. Warum?
Uniqueidentifier Felder in Sql Server können indiziert werden, und so sind 'rückwärts'.
Guids können sowohl aus maschinenspezifischen Informationen als auch aus 'event-time' Informationen generiert werden.
Die Standard-Guid in .Net ist zufällig, aber Sie können sequentielle Guids mit einem externen Aufruf erhalten:
%Vor%Dadurch erhalten Sie Guids basierend auf Ihrer MAC-Adresse ( MSDN-Dokumentation ), die sequenziell sind .
Wenn Sie .ToString()
diese sequentiellen Guids verwenden, sehen Sie, dass der erste Teil des Strings variiert, während der Rest konstant bleibt.
Dies macht Gleichheitsprüfungen zwischen Guids schneller (wie die Unterschiede am Anfang sein werden) und verbessert die Variation für abgeschnittene.
Zum Suchen von Spalten SqlServer erstellt Indizes ähnlich wie ein Telefonbuch oder ein Wörterbuch. Es ist viel schneller, nach Wörtern zu suchen, die mit "Over *" beginnen, als mit "* flow" zu suchen.
Dies bedeutet, dass für den SQL-Server alle sequentiellen Guids zuerst mit dem repetierenden Wert gespeichert werden müssen, damit sie von vorne nach hinten gespeichert werden.
Tags und Links .net sql-server