我有一个 SQL Server 数据库,并sp_blitz
针对它运行。这表明在中等大小的表上有几个堆(在一种情况下有几十万行)。
这些表中的大多数都有一个主键(一个没有,但我稍后会处理)。主键本身有一个不寻常的名称 - 即不是默认名称,而大多数表都有一个默认主键名称 ( PK_tablename
)。
存在一个名称与主键匹配的索引,该索引是唯一且非聚集的。
我可以重命名主键,但我认为我应该创建一个聚集索引。如果我这样做,那么我将有重复的索引,因此删除非聚集索引是有意义的。但是,它被用于主键。
如果我将主键约束从旧的非聚集索引移动到新的聚集索引:
- 这有意义吗?
- 有什么我应该注意的吗?
- 最好的方法是什么?
以下脚本说明了一种将现有非集群主键转换为集群主键并将其重命名的有效方法: