2011-09-10 100 views
1

可能重复:
GUID vs INT IDENTITY何时使用GUID在SQL Server

时不时地,我看到使用GUID的一个系统,我问自己,这多少会影响性能。我曾经在一个使用GUID的系统上工作过,它是由一个“高级开发人员”写的,他总是说这是最好的选择等等。我运行了多个测试来检查GUID的性能与自动增量,自动增量秒每个查询...

我想知道什么情况下我应该使用GUID而不是多个主键/自动增量。

回答

0

还有这个问题的辩论/意见/答案围绕着,一些在这里和许多更多,如果你谷歌它。

0

的GUID(唯一标识符在MSSQL)是良好的按键提供了以下优点:

1)您可以将对象插入数据库之前自己创建密钥。这使您可以创建第N个记录(外键引用)的主要细节,而无需先向数据库询问下一个主记录键将是什么。

2)您可以为系统范围内的任何记录创建唯一的密钥,这对于使用实体的类层次结构的ORM数据库非常有用。

3)您可以硬编码指定特定记录的guid。示例可能是主“根”用户记录,主“代理”机构记录(如果您创建公司/机构层次结构),预定义查询(如性别,安全角色)。

关于优化,是使用任何常用的键的GUID会减慢你的数据库,但你可以使用数据库优化的GUID(你必须谷歌的东西)。本质上,数据库优化的GUID使GUID更加顺序,但保留足够的随机部分以保持它们的独特性。