在日期列上有一个已分区的表。表的主键是此日期列和其他4列的复合键。
我们正在考虑从这个表中删除主键约束,并简单地创建一个新的非聚集索引。
如果删除主键约束,是否会影响分区,因为分区列是主键的一部分?
发布于 2012-09-14 03:06:10
它不应该影响表的分区,因为表是在分区方案上创建的,并指定了分区列。
每个分区都有自己的HOBT (堆或B树)。从本质上说,你的桌子上的每一次约会都有一个HOBT。
如果主键也是聚集索引,则将每个分区的B-树转换为堆。根据表的大小,将数据从B树移动到堆中可能需要相当多的时间和资源。建议在尝试删除聚集索引之前删除所有非聚集立体体,然后在(或禁用/重建)之后重新创建它们。以下是Microsoft的详细说明:
“删除聚集索引时,存储在聚集索引的叶级的数据行存储在无序表(堆)中。删除聚集索引可能需要时间,因为除了删除聚集索引外,必须重新构建表上的所有非聚集索引,以便用堆的行指针替换聚集索引键。当您将所有索引删除到表上时,先删除非聚集索引,最后再删除聚集索引。”
http://msdn.microsoft.com/en-us/library/ms190691%28v=SQL.90%29.aspx
我不会评论这样做对查询性能的影响,因为我不熟悉如何查询表。
与任何重大更改一样,在尝试进行此更改之前,请确保在测试环境中尝试此更改。
https://dba.stackexchange.com/questions/24302
复制相似问题