Welcher Datentyp ist GUID in SQL Server?

8

Wie wird GUID intern von SQL gespeichert und verglichen (insbesondere MS SQL Server 2008)? Ist es eine Nummer oder ein String? Gibt es einen großen Leistungseinbruch bei der Verwendung von GUID als Primärschlüssel?

Neben dem hier erwähnten Clusterproblem: Welche Best Practices für die Verwendung einer GUID als Primärschlüssel, insbesondere hinsichtlich der Leistung?

Ich denke, es sollte 128-Bit-Nummer sein (wie beschrieben hier ) ), aber ich kann keine Modusdetails darüber finden, wie es in SQL Server implementiert ist.

    
Ondra Peterka 13.05.2013, 11:35
quelle

2 Antworten

7

16 Byte, genau wie die GUID-Struktur :

%Vor%     
Remus Rusanu 13.05.2013, 11:39
quelle
10

Leistungsmäßig ist normal GUID langsamer als INT in SQL Server

Wenn Sie GUID verwenden möchten, verwenden Sie uniqueidentifer anstelle von varchar als Datentyp. Microsoft hat nicht erwähnt, wie sie es implementieren, es gibt eine Geschwindigkeitsoptimierung, wenn Sie uniqueIdentifer als Datentyp verwenden.

Um GUID als Primärschlüssel zu verwenden, ohne die Geschwindigkeit der Ganzzahl zu opfern, machen Sie den GUID Wert sequentiell . Definieren Sie den uniqueidentifer -Datentyp als PK, und setzen Sie den Standardwert auf NEWSEQUENTIALID() .

Weitere Informationen finden Sie unter NEWSEQUENTIALID (Transact-SQL) Details.

Wie sequenzielle GUID -Werte zur Leistung beitragen, erfahren Sie unter Kosten von GUIDs als Primärschlüssel .

    
MikeLim 13.05.2013 11:56
quelle

Tags und Links