【问题标题】:Primay key non-clustered (composite key) and clustered index on different column in same table?同一表中不同列上的主键非聚集(复合键)和聚集索引?
【发布时间】:2020-03-02 18:01:01
【问题描述】:

我正在使用 SQL Server 2012,对于其中一个表,我看到它在不同列上创建了主键非聚集(复合键)和聚集索引?有人可以帮助我了解在这种情况下会发生什么吗?

  1. 这会降低 DML 操作的性能吗?如果是,如何测量?
  2. 在并发期间执行 DML 操作时,这会导致该表的锁定/阻塞/死锁吗?

注意:该表中有大量记录 ~ 1000 万

【问题讨论】:

  • @MartinSmith - 谢谢,这是非常好的信息
  • @MartinSmith - 我们能得到所有关于索引的神话吗?如果你有任何链接可以探索更多内容,那就太好了。

标签: sql-server sql-server-2012 query-performance sql-server-performance


【解决方案1】:

您可能最终得到一个非聚集复合键的主键的一个常见场景是联结表。联结表主要用于存储来自其他表的两个主键值之间的关系。一个简单的例子是存储学生和他们所学课程之间的关系。因此,此类表中的主(唯一)键实际上是两个外键列的组合。话虽如此,其他列上仍然可以有聚集索引。假设这样的表格符合您的设计意图,这里并没有什么特别之处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2013-12-02
    • 1970-01-01
    • 2020-11-06
    • 2011-08-21
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多