SQL Server 2005+ 引入資料表分區,MERGE RANGE (合併分區) 實際上是刪除一個邊界值,將其所屬分區資料移動至相鄰分區。本文透過六組實測,揭示 RANGE LEFT / RANGE RIGHT 下首值、中間值、尾值合併時的資料移動方向規則。
'20100101', '20110101', '20120101', '20130101'初始分區區間:
| 檔案群組 | 分區號 | 區間範圍 |
|---|---|---|
| FG1 | 1 | [過去, 2010-01-01) |
| FG2 | 2 | [2010-01-01, 2011-01-01) |
| FG3 | 3 | [2011-01-01, 2012-01-01) |
| FG4 | 4 | [2012-01-01, 2013-01-01) |
| PRIMARY | 5 | [2013-01-01, 未來) |
ALTER PARTITION FUNCTION pf() MERGE RANGE ('20100101');
結果:FG2 合併到 FG1 (右側分區資料移入左側)。
新區間:[過去, 2011-01-01) 落在 FG1。
結果:FG3 合併到 FG2 (右側移入左側)。
結果:PRIMARY 合併到 FG4 (最右側分區資料移入左側)。
初始分區區間:
| 檔案群組 | 分區號 | 區間範圍 |
|---|---|---|
| FG1 | 1 | (過去, 2010-01-01] |
| FG2 | 2 | (2010-01-01, 2011-01-01] |
| FG3 | 3 | (2011-01-01, 2012-01-01] |
| FG4 | 4 | (2012-01-01, 2013-01-01] |
| PRIMARY | 5 | (2013-01-01, 未來] |
結果:FG1 合併到 FG2 (左側分區資料移入右側)。
結果:FG2 合併到 FG3 (左側移入右側)。
結果:FG4 合併到 PRIMARY (左側移入右側)。
被刪除的邊界值屬於哪個分區,該分區即被移除,其資料移動至與該邊界值相鄰的另一個分區。
圖解請見原文兩張示意圖 (右邊界 / 左邊界)。
REBUILD。作者:聽風吹雨 | 出處:https://gaizai.cnblogs.com/ | 版權歸作者與博客園共有。