Warum GUIDs?

10/09/2009 - 14:00 von Michael Andreas | Report spam
Hi,

ich hab jetzt zum erstenmal gesehen das eine Tabelle
keine id mit dem VariablenTyp int sondern GUIDs enthielt,
ich glaub die waren vom Typ char.
Es gab verknüpfte Tabellen mit diesem Namen.

Meine Frage:
Die Verknüpfung auf entsprechende Tabellennamen leuchtet mir ein.
Was hat das sonst für Vorteile?

Danke Michael
 

Lesen sie die antworten

#1 Elmar Boye
10/09/2009 - 15:53 | Warnen spam
Hallo Michael,

Michael Andreas schrieb:
ich hab jetzt zum erstenmal gesehen das eine Tabelle
keine id mit dem VariablenTyp int sondern GUIDs enthielt,
ich glaub die waren vom Typ char.



Die sollten schon vom Typ uniqueidentifer sein,
sonst wàre das ein Design-Fehler.
<URL:http://msdn.microsoft.com/de-de/lib...2.aspx>

Die Verknüpfung auf entsprechende Tabellennamen leuchtet mir ein.
Was hat das sonst für Vorteile?



Der Vorteil, den man sich i.d.R. davon verspricht,ist die
Vergabe eines Schlüssel unabhàngig vom SQL Server.
Da Guids eindeutig sind und auch vom Client erzeugt werden
- z. B. in .NET via Guid.NewGuid - steht einem der Schlüssel
bereits vor dem Speichern zur Verfügung - im Gegensatz zu
einer Identity-Spalte.

Nachteile haben sie allerdings auch:
Zum einen benötigen sie mit 16 Byte mehr Platz. Zum anderen
ist die Verteilung schlechter, auch wenn das ab SQL Server 2005
mit NEWSEQUENTIALID() gemildert werden kann:
<URL:http://msdn.microsoft.com/de-de/lib...6.aspx>

Siehe z. B.
<URL:http://www.sqlskills.com/BLOGS/KIMB...y.aspx>


Gruß Elmar

Ähnliche fragen