[英]Switch partition says index needs to include partitioned column
'ALTER TABLE SWITCH'语句失败。 表'dbo.test'被分区,而索引'IX_test'没有被分区。“
当我运行switch partition
,我收到此错误。 要解决此错误, IX_test
索引应在其定义中包含分区列。 但是如果我们在索引中包含分区列,这会降低性能吗?
示例:我们有表X,它在列A,B和C上有索引,它在列D上分区。我们再创建一个名为X1的表,其模式与X相同。我们将使用它来进行它们之间的分区切换操作(X和X1)。
由于索引不在D列(它在A,B,C上),我得到上面的错误。 将分区列(即D)添加到索引中是否很好,如下所示?
CREATE NONCLUSTERED INDEX IX_T_MSB_Pseudo ON dbo.T_MSB_Pseudo
(
A, B, C
)
INCLUDE
(
D
)
ON PRIMARY
这会降低性能吗? 还有其他方法可以解决这个问题吗?
SWITCHing分区要求切换表在各方面都非常相同
所以,让他们这样做。
分区切换它能够交换几个指针以交换数据,而无需任何实际处理或检查或数据移动。 所以有规则。
从MSDN “使用分区切换有效传输数据” ,2个关键点
分区必须位于同一列
必须定义非聚簇索引并且必须相同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.