簡體   English   中英

分區切換后,SQL Server表分區無法刪除文件組

[英]SQL Server Table Partitioning Cannot drop Filegroup after Partition Switch

我有一張約110個分區的大桌子。 我希望歸檔最早的分區並刪除FileGroup。 以下是我采用的策略。

  1. 創建了一個精確的空表tablename_archive並滿足所有分區要求。

  2. 執行分區切換

     ALTER TABLE tablename SWITCH PARTITION 1 TO tablename_archive PARTITION 1 
  3. 在驗證了開關(分區交換)之后,我刪除了存檔表。

  4. 使用第一個邊界值合並分區函數,如下所示

     ALTER PARTITION FUNCTION YMDatePF2 () MERGE RANGE ('2012-01-01 00:00:00.000') 

盡管現在FG上沒有數據,但是當我嘗試刪除File或FG時,會出現錯誤提示。

    The file 'XXXXXXXX' cannot be removed because it is not empty.

    The filegroup 'XXXXXXXX' cannot be removed because it is not empty.

合並功能后,我是否還需要對分區方案進行任何更改。

如果您需要更多詳細信息,請告訴我。

您永遠不能從RANGE RIGHT分區功能(或相反, RANGE LEFT函數的最后一個(或唯一)分區)中刪除第一個(或唯一)分區。 基礎分區方案中的第一個(或最后一個,如果是RANGE LEFT )文件組也永遠不能從方案中刪除。 請記住,分區和分區方案文件組映射比分區邊界多。

如果您打算歸檔2012年1月的數據,則應該切換分區2而不是分區1,因為第一個分區包含的數據少於'2012-01-01 00:00:00.000'。 現在,第二個分區已合並,第一個分區(和第一個文件組)包含的數據小於'2012-02-01T00:00:00.000',其中包括2012年1月的數據。

使用RANGE RIGHT滑動窗口時,最好計划將第一個文件組保留為空。 為此,您可以使用PRIMARY文件組或沒有文件的虛擬文件組。 請參閱表分區最佳實踐

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM