什么数量的"独特键"可以在SQL Server的表中创建?

时间:2014-05-19 11:51:52

标签: sql sql-server

我们知道我们在一个表中只能有一个主键,所以有没有办法知道表中唯一键的最大数量。我已经读过一个帖子,其中唯一键的数量取决于数量聚集索引。

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

2 个答案:

答案 0 :(得分:2)

如果此SQL Server然后检查此Maximum Capacity Specifications for SQL Server

答案 1 :(得分:1)

我认为您对unique约束和clustered约束感到困惑。

  • Unique键是一个键,您可以通过该键轻松判断您正在处理的 exatcly 记录。
  • Clustered键是处理硬盘上记录的物理位置的键。

因此,您可以为记录设置许多唯一约束,但只能对磁盘上的记录进行排序。如果您使用的是MS SQL服务器,请参阅@ user3414693提到的the link

  

每张桌子的非聚集索引:
  999(最大尺寸/数字SQL Server(32位))
  999最大大小/数字SQL Server(64位)

您应该注意,这里的全部索引,不仅是唯一的索引。

目前无法找到Oracle的具体信息。

PS:另外你应该注意,如果你有一个uniqueidentifier的主键,那么将主键作为集群键对于巨大的表来说可能是一个严重的性能问题。对于真实的Uniqueidentifier是一个非常大的数字,并且它不像IDENTITY列那样被排序,因此当您必须移动物理时,可能会在添加新记录时遇到这种情况所有表数据。