繁体   English   中英

切换分区表示索引需要包含分区列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM