关于GUID

关于GUID

GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标识号)以及 CPU 时钟的唯一数字生成的的一个 16 字节的二进制值。

1.1     在C#中使用GUID

GUID 在 .NET 中使用非常广泛,而且 .NET Framework 提供了专门 Guid 基础结构。

Guid 结构的常用法包括:

1) Guid.NewGUID()

生成一个新的 GUID 唯一值

2) Guid.ToString()

将 GUID 值转换成字符串,便于处理

3)构造函数 Guid(string)

由 string 生成 Guid 结构,其中string 可以为大写,也可以为小写,可以包含两端的定界符“{}”或“()”,甚至可以省略中间的“-”,Guid 结构的构造函数有很多,可以根据实际需求使用。

同时,为了适用数据库中使用 GUID 的需要,.NET Framework 也提供了 SqlGUID 结构,它和 Guid 结构类似,只是两者对排序(CompareTo)的处理方式不同,SqlGuid 计算值的最后 6 个字节。而 Guid 计算全部 16 个字节,这种差异可能会给 SQL Server 中 UNIQUEIDENTIFIER 列的排序带来一定影响,当然这种排序意义也不大。

.NET Framework 中可以使用类 GuidConverter 提供将 Guid 结构与各种其他表示形式相互转换的类型转换器。

1.2     MSSQLSERVER中的IDENTITY与UNIQUEIDENTIFIER

同 IDENTITY 列相比,UNIQUEIDENTIFIER 列可以提前得知新增加的行 ID,为应用程序的后续处理提供了很大方便。

有些数据库不支持IDENTITY,所以用UNIQUEIDENTIFIER便于数据库的移植。

如果应用程序要加载一些初始数据, IDENTITY 列的处理方式就比较麻烦,而 UNIQUEIDENTIFIER 列则无需任何处理,直接用 T-SQL 加载即可。

GUID 的值有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着如果在数据库中使用 UNIQUEIDENTIFIER 键,可能会带来两方面的消极影响:存储空间增大;索引时间较慢。

posted on 2012-12-18 21:53  ChalesLv  阅读(145)  评论(0)    收藏  举报

导航