Was sind die best practices für die Verwendung einer GUID als Primärschlüssel, insbesondere in Bezug auf die Leistung?

Ich habe eine Anwendung die GUID als Primärschlüssel in fast allen Tabellen und ich habe gelesen, dass es Probleme sind, über die Leistung bei der Verwendung von GUID als Primärschlüssel. Ehrlich gesagt, ich habe nicht gesehen, jedes problem, aber ich bin über den start einer neuen Anwendung, und ich will immer noch die Verwendung der GUIDs als Primärschlüssel, aber ich dachte an mit einem Zusammengesetzten Primärschlüssel (GUID und vielleicht ein anderes Feld).

Ich bin mit einem GUID-weil Sie schön und leicht zu verwalten, wenn Sie über verschiedene Umgebungen, wie z.B. "Produktion", "test" und "dev" - Datenbanken und auch für die migration von Daten zwischen Datenbanken.

Ich werde Entity Framework 4.3, und ich will ordnen Sie die Guid in die Anwendung code, vor dem einfügen in die Datenbank. (d.h. ich will nicht zu lassen, die SQL generieren der Guid).

Was ist die beste Methode zum erstellen von GUID-basierten Primären Schlüssel, um zu vermeiden, dass die vermeintliche Leistung trifft im Zusammenhang mit diesem Ansatz?

Das Problem ist nicht zugelassen. Wenn Ihre PK gruppiert ist dann fast jeder Einsatz hat das Potenzial, zu einem Seite split. In modernen Versionen von SQL Server wurde dies "behoben" mit NEWSEQUENTIALID(), aber dieser verliert den Vorteil des seins in der Lage zu berechnen, es vorher. Ich empfehle dringend Sie zu Lesen, auf GUIDs an anderer Stelle als dieser ist viel zu breit für eine Frage, die wahrscheinlich zu werben, eine religiöse Schlacht, die sich über Stunden...
Ich würde auch hinzufügen, dass das Wort server mehrdeutig ich will ordnen Sie die Guid auf der server Seite (die nicht wollen, lassen Sie SQL zum erstellen der GUID).
Diese Frage hat parallelen zu diesem "sql-server-guid-sort-Algorithmus-warum" stackoverflow.com/questions/7810602/...
Ist dies immer noch ein problem in 2016?

InformationsquelleAutor VAAA | 2012-08-13

Schreibe einen Kommentar