Eindeutige Kennung (GUID) als Primärschlüssel im Datenbankentwurf

Unsere Daten befinden sich in einer SQL Server 2008 Datenbank, es wird eine Menge von Abfragen und Beitrittes zwischen Tabellen. Wir haben dieses argument innerhalb der Mannschaft, einige sind der Meinung die Verwendung von integer-Identität ist besser für die Leistung, einige sind der Meinung die Verwendung der guid (eindeutiger Identifikator).

Macht wirklich leiden, die schlecht mit einer GUID als Primärschlüssel?

Kommentar zu dem Problem
Die größte Leistung und die Fragmentierung der Probleme mit einem UNIQUEIDENTIFIER wird kommen, wenn Sie tun Sie Ihre PK einen gruppierten index Kommentarautor: Lamak
so gibt es Fragen, ist es wahr zu sagen immer mit int anstatt guid als pk dann? Warum kommt jeder Verwendung guid dann? Kommentarautor: TOMMY WANG
werfen Sie einen Blick auf diesen link, um zu sehen, die Auswirkungen auf die Fragmentierung, die mit UNIQUEIDENTIFIER sqlskills.com/blogs/paul/post/... . Auf der anderen Seite, nur selten jemanden, der verwendet UNIQUEIDENTIFIER auf einem gruppierten index Kommentarautor: Lamak
Ich benutze Sie auf clustered-Indizes regelmäßig. Die Fragmentierung Problem wird durch die Art und Weise neue Werte berechnet werden, die nicht durch die uniqueidentifier - Datentyp selbst. Wenn Sie Zufallszahlen für eine integer-ID, die Sie hatte das gleiche problem haben. Verwenden Sie NEWSEQUENTIALID() oder eine KAMM-ähnliche Methode, und es sollte kein wirkliches Problem. Kommentarautor: richardtallent
Clustering auf eine zufällige GUID kann tatsächlich helfen, die performance, im Gegensatz zu der landläufigen Meinung, dass über eine sequentielle GUID ist besser. Die Zufälligkeit einer GUID kann tatsächlich reduzieren die Konflikte auf der letzten Seite Daten und steigern Sie die performance von Gewindeeinsätzen auf hohe I/O-Systeme erheblich. Siehe: blog.kejser.org/2011/10/05/... Kommentarautor: Triynko

InformationsquelleAutor der Frage TOMMY WANG | 2012-03-15

Schreibe einen Kommentar