我有一个现有的结构表:
TableA
(
Id1 int not null,
Id2 int not null
)
主键是复合(Id1, Id2)
。如果你还没推断出它,那么这是一个多对多的关联表。这些是表中唯一的列。
由于此实例中业务用例的性质,填充表的实际应用程序数据只是一对多关系。行数非常小。某处~50行。偶尔会创建新的Id2
记录,然后将其与现有的Id1
记录相关联。甚至更少创建一个新的Id1
记录,需要插入一组新的Id1, Id2
记录。然而,在日常的基础上,数据是静态的。该表在联接查询中大量使用。
表格上唯一的索引是nonclustered, unique, primary key
(作为约束定义的一部分创建){。{1}}。
为了满足将数据同步到另一个数据库的一些要求,我需要在此表中添加聚簇索引。
在保持最佳性能和良好的物理数据组织的同时,最好的方法是什么?
鉴于行数很少,我倾向于用聚簇索引替换非聚集索引。
一些想法:
答案 0 :(得分:2)
我说,有50行它并不重要。我创建了一个
(id1, id2)
(id2, id1)
这将涵盖所有可能的查询。
偶尔(每天或每周一次或在更改此不经常更改的表后),您可以重建所有索引以对其进行碎片整理并使统计信息保持最新。应该以任何方式对所有表格进行这种维护。