相关疑难解决方法(0)

使用GUID作为主键的最佳做法是什么,特别是在性能方面?

我有一个应用程序在几乎所有表中使用GUID作为主键,我已经读过使用GUID作为主键时存在性能问题.老实说,我没有看到任何问题,但我即将开始一个新的应用程序,我仍然想使用GUID作为主键,但我想使用复合主键(GUID和可能是另一个字段) .)

我正在使用GUID,因为当您拥有不同的环境(如"生产","测试"和"开发"数据库)以及数据库之间的迁移数据时,它们很好并且易于管理.

我将使用Entity Framework 4.3,我想在将其插入数据库之前在应用程序代码中分配Guid.(即我不想让SQL生成Guid).

创建基于GUID的主键的最佳做法是什么,以避免与此方法相关的假设性能命中?

sql-server database-design entity-framework guid primary-key

311
推荐指数
4
解决办法
15万
查看次数

GUID 00000000-0000-0000-0000-000000000000导致合并索引违规

我们的开发人员有一个与我的数据库对话的linq-2-sql项目.数据库涉及合并复制.它已经使用了一段时间,并且工作正常.最近的一个表被添加到模式中,现在在添加新记录时引起问题.

用户得到一条错误消息,指出与合并复制自动创建的guid相关的索引违反了唯一约束.

据我所知,该表与其他参与者没有任何不同.我已经从头开始重新创建了整个复制发布/订阅模型,一切都继续工作但只有一个表.

有人有主意吗?正在创建的guid显示为00000000-0000-0000-0000-000000000000,这可以解释为什么它是重复的.为什么linq没有创建有效的guid?

sql-server-2008 linq-to-sql merge-replication

3
推荐指数
2
解决办法
1万
查看次数