3

我看过各种文章都指向使用以下模式:

  • ID( uniqueidentifier) : PK,非集群
  • ClusteredID( int) : 索引,聚集 (IDENTITY)
  • 我的其他专栏(各种)

我对这种模式的解释是,它允许使用 a 来标识记录uniqueidentifier(这在许多情况下很有用),但这意味着聚集索引不会因为生成的int identity列值的增量排序而变得如此碎片化。

到目前为止,这一切对我来说都很有意义。

我不完全理解的是:

如果唯一标识符是uniqueidentifier,那么在相关表中将其用作 FK 对我来说是有意义的。现在,当执行连接两个表的 select 语句时,SQL Server将在uniqueidentifiers. 但是,看到它实际上是聚集的 int 索引,那么我会认为 int 上的集群不会有助于连接的性能。

如果我上面的假设是正确的,那么我不会欣赏添加聚集 int 索引的好处。

因此,我想我的假设是不正确的。谁能告诉我我的想法哪里出错了?

4

0 回答 0