我有一个存储员工详细信息的SQLServer表,列ID为GUID类型,而列EmployeeNumber为INT类型。大多数时候,我会在进行联接和选择条件时处理EmployeeNumber。
我的问题是,在将ClusteredIndex分配给EmployeeNumber时,将PrimaryKey分配给ID列是否明智?
理想的聚集索引键是:
1.Sequential 2.Selective (no dupes, unique for each record) 3.Narrow 4.Used in Queries
通常,将GUID用作聚集索引键是一个 非常糟糕的主意 ,因为在添加行时会导致很多碎片。
编辑清晰度:
PK和集群密钥确实是独立的概念 。您的PK不必是您的聚集索引键。
根据我的经验,在 实际应用 中,与PK相同的字段应该/将成为您的群集密钥,因为它满足上面列出的相同条件。