Microsoft SQL Server bietet den NEWID
Befehl zum Generieren eines neuen GUID- Werts (der Microsoft-Version von UUID ), der als Primärschlüsselwert (in ihrem uniqueidentifier
Datentyp) verwendet werden kann. Diese sind nicht sequentiell, daher kann die Aktualisierung eines Index ineffizient sein.
Alternativ bietet MS SQL Server den NEWSEQUENTIALID
Befehl an. Um ihre Dokumentation zu zitieren:
Erstellt eine GUID, die größer ist als jede GUID, die zuvor von dieser Funktion auf einem bestimmten Computer seit dem Start von Windows generiert wurde. Nach dem Neustart von Windows kann die GUID von einem niedrigeren Bereich aus erneut gestartet werden, ist jedoch immer noch global eindeutig. Wenn eine GUID-Spalte als Zeilenbezeichner verwendet wird, kann die Verwendung von NEWSEQUENTIALID schneller sein als die Verwendung der NEWID-Funktion. Dies liegt daran, dass die NEWID-Funktion zufällige Aktivitäten verursacht und weniger zwischengespeicherte Datenseiten verwendet. Die Verwendung von NEWSEQUENTIALID hilft auch dabei, die Daten- und Indexseiten vollständig auszufüllen.
Gibt es eine Möglichkeit, die effizient indizierte UUID in Postgres zu erhalten?
NEXSEQUENTIALID
scheint eine Problemumgehung für solche zu sein. (Und es gibt andere Techniken.)