我正在创建一个数据库,用于记录 PC 使用情况。将有几个格式的条目:Computer、User、AuditTime。它用于跟踪执行审核时谁登录了哪台计算机。我公司及各部门所有计算机和用户的计算机和用户引用表。
我应该将 Computer 和 AuditTime 一起作为复合键吗?当真的不需要对此表的唯一约束时,是否会因麻烦指定主键而对性能造成影响或 yield ?
数据库是MS SQL Server 2008。
请您参考如下方法:
默认情况下,SQL Server 将您的主键作为聚类键(除非您明确告诉它不要这样做),正如 Kimberly Tripp 在她的博客文章 The Clustered Index Debate Continues 中显示的那样,在表上使用聚簇索引对任何操作(包括 INSERT 和 DELETE)都是有益的,只要它是正确类型的聚簇索引即可。
一个好的聚簇索引应该是:
- 缩小
- 独一无二
- 稳定(不变)
- 不断增加
最合适的是 INT IDENTITY 代理键 - 对于绝大多数情况,我建议不要使用复合索引。




