簡體   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