A guid és a uniqueidentifier értékeinek összehasonlítása
Az SQL Serverben található GUID adattípusát egy egyedi azonosító adattípus képviseli. amely 16 bájtos bináris értéket tárol. A GUID egy bináris szám, amelyet elsősorban azonosítók hozzárendelésére használnak, amelyeknek egyedinek kell lenniük a hálózaton belül, számos helyszínen lévő számítógéppel. A GUID-eket a Transact-SQL NEWID függvény hívásával lehet létrehozni, garantáltan egyedülállóak minden helyen. További információ: "Az egyedi azonosító értékek használata" az SQL Server Books Online webhelyen.
Mivel a GUID-értékek hosszúak és átlátszatlanok, nem hordoznak semantikus terhelést a felhasználók számára. Ha GUID véletlen értékeket használnak kulcsértékekként, és sok sor van beillesztve, az I / O műveletek növekedését eredményezi az indexekben, ami hátrányosan befolyásolhatja a teljesítményt. Ezenkívül a GUID értékek viszonylag nagyok, összehasonlítva más típusú adatokkal. Általánosságban azt javasoljuk, hogy a GUID értékeket csak olyan szűk körű forgatókönyvek esetén használjuk, amelyeknél más típusú adatok nem megfelelőek.
Az összehasonlító operátoroknál egyedi azonosító értékeket lehet használni. Azonban megrendelésük bitenkénti összehasonlítás nélkül valósul meg. Az egyedülálló azonosító értékek csak összehasonlítási műveleteket végezhetnek (= <>, <,>, <=,>=), valamint ellenőrzi a NULL (IS NULL és IS NOT NULL) értéket. Más számtani szereplők tilosak.
A Guid és SqlGuid struktúráknak egy CompareTo módszere van a különböző GUID értékek összehasonlítására. Azonban a System.Guid.CompareTo és SqlTypes.SqlGuid.CompareTo módszereit különböző módon valósítják meg. Az SqlGuid-ban a CompareTo metódus az SQL Server viselkedését alkalmazza az érték legjelentősebb 6 bájtjában. A Guidban minden 16 bájt értékelhető. A következő példa bemutatja ezt a különbséget. A kód első része a Guid. a második részben - osztályozott értékek Guid. A harmadik rész az SqlGuid rendezett értékeit mutatja. A kimenet a kóddoboz után jelenik meg.