可以在 SQL Server 中的表中创建多少个"Unique Keys"?



我们知道在一个表中只能有一个主键,那么有没有办法知道表中唯一键的最大数目呢?我读过一篇文章,根据该文章,没有唯一键依赖于聚集索引的数量。

查看此链接http://www.orafaq.com/forum/t/152739/

如果是SQL Server,请检查SQL Server的最大容量规格

我认为你混淆了unique约束和clustered约束。

  • Unique键是一个键,你可以很容易地告诉哪个确切的记录你正在处理。
  • Clustered键是处理记录在硬盘上物理位置的键。

所以你可以为你的记录设置许多唯一的约束,但只有一个约束会对磁盘上的记录进行排序。如果您使用的是MS SQL服务器,请参考@user3414693所提到的链接:

每个表的非聚集索引:
999(最大大小/数字SQL Server(32位))
999 SQL Server(64位)

您应该注意,这里是表的所有索引,而不仅仅是唯一的索引。

现在找不到Oracle的具体信息

PS:您还应该注意,如果主键是uniqueidentifier类型的列,那么将主键作为集群键可能会对大型表造成严重的性能问题。真正的Uniqueidentifier是一个非常非常大的数字,并且它不像IDENTITY列那样排序,因此在添加新记录时,当您必须在物理上移动所有表数据时,可能会面临这样的情况。

最新更新