我正在创建一个将记录PC使用情况的数据库。将有几个格式的条目:计算机,用户,审计时间。它用于跟踪在执行审计时谁登录到哪台计算机。我们公司及其各自部门的所有计算机和用户的计算机和用户参考表。
我应该将Computer和AuditTime组合成一个复合键吗?在真正指定主键时是否会产生性能损失或增益,此表上的唯一约束是不必要的?
数据库是MS SQL Server 2008。
答案 0 :(得分:3)
编辑:投票给Marc_s!
拥有主键会影响性能 - 这就是为什么它们通常不会在具有高插入,低读取使用(IE:日志)的表中配置。但群集密钥很好。
答案 1 :(得分:3)
默认情况下,SQL Server会将您的主键作为群集密钥(除非您明确告诉它),正如Kimberly Tripp在她的博客文章The Clustered Index Debate Continues中所示,在表上拥有聚簇索引对任何人都有益操作 - 包括INSERT和DELETE - 只要它是 right 类型的聚簇索引。
一个好的聚集索引应该是:
最合适的是INT IDENTITY
替代密钥 - 对于绝大多数情况,我会建议不要使用复合指数。