色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

SQL Server 合并(刪除)分區(qū)解惑

  一、準(zhǔn)備

  在SQL Server 2005版本之后就有了表分區(qū)的概念與應(yīng)用,在分區(qū)操作里面有一個(gè)叫做合并分區(qū)的功能,也被稱(chēng)為刪除分區(qū)。分區(qū)所處的文件組和文件是不會(huì)被刪除的,只會(huì)對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)移合并。合并分區(qū)時(shí)需要注意所帶來(lái)的IO問(wèn)題。

  合并分區(qū)常見(jiàn)情景:發(fā)現(xiàn)某個(gè)分區(qū)的數(shù)據(jù)很少,為了方便管理可以考慮合并分區(qū)。需要進(jìn)行統(tǒng)計(jì)、四則運(yùn)算的時(shí)候也可以考慮合并分區(qū),這種情形下并沒(méi)有對(duì)比合并與分區(qū)之間的性能,如果某位童鞋有興趣和環(huán)境的話可以提供這方面的數(shù)據(jù)。

  查看分區(qū)方案的方式:在SQL Server Management Studio中,選擇數(shù)據(jù)庫(kù)-->存儲(chǔ)-->分區(qū)方案,右擊分區(qū)方案名,在彈出的菜單中選擇“編寫(xiě)分區(qū)方案腳本為”-->CREATE-->新查詢編輯器窗口。

  二、測(cè)試

  (一)  環(huán)境:使用RANGE RIGHT作為分區(qū)函數(shù)的關(guān)鍵字,它表示這個(gè)值開(kāi)始是屬于右邊界的。

  RANGE RIGHT FOR VALUES ('20100101','20110101','20120101','20130101') 

文件組

分區(qū)

取值范圍

[FG1]

1

[過(guò)去某年, 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, 未來(lái)某年)

  1. 測(cè)試一:刪除分區(qū)函數(shù)的第一個(gè)值

  當(dāng)使用MERGE RANGE ('20100101'),合并后分區(qū)就相當(dāng)于:

  RANGE RIGHT FOR VALUES ('20110101','20120101','20130101') 

文件組

分區(qū)

取值范圍

[FG?]

1

[過(guò)去某年, 2011/01/01)

[FG3]

2

[2011/01/01, 2012/01/01)

[FG4]

3

[2012/01/01, 2013/01/01)

[PRIMARY]

4

[2013/01/01, 未來(lái)某年)

  問(wèn)題:是[FG1]合并到[FG2],還是[FG2]合并到[FG1]呢?

  測(cè)試結(jié)果:[FG2]合并到[FG1]

  2. 測(cè)試二:刪除分區(qū)函數(shù)的第二個(gè)值

  當(dāng)使用MERGE RANGE ('20110101'),合并后分區(qū)就相當(dāng)于:

  RANGE RIGHT FOR VALUES ('20100101','20120101','20130101') 

文件組

分區(qū)

取值范圍

[FG1]

1

[過(guò)去某年, 2010/01/01)

[FG?]

2

[2010/01/01, 2012/01/01)

[FG4]

3

[2012/01/01, 2013/01/01)

[PRIMARY]

4

[2013/01/01, 未來(lái)某年)

  問(wèn)題:是[FG2]合并到[FG3],還是[FG3]合并到[FG2]呢?

  測(cè)試結(jié)果:[FG3]合并到[FG2]

  3. 測(cè)試三:刪除分區(qū)函數(shù)的最后一個(gè)值

  當(dāng)使用MERGE RANGE ('20130101'),合并后分區(qū)就相當(dāng)于:

  RANGE RIGHT FOR VALUES ('20100101','20110101','20120101')

文件組

分區(qū)

取值范圍

[FG1]

1

[過(guò)去某年, 2010/01/01)

[FG2]

2

[2010/01/01, 2011/01/01)

[FG3]

3

[2011/01/01, 2012/01/01)

[?]

4

[2012/01/01, 未來(lái)某年)

  問(wèn)題:是[FG4]合并到[PRIMARY],還是[PRIMARY]合并到[FG4]呢?

  測(cè)試結(jié)果:[PRIMARY]合并到[FG4]

  (二)  環(huán)境:使用RANGE LEFT作為分區(qū)函數(shù)的關(guān)鍵字,它表示這個(gè)值開(kāi)始是屬于左邊界的。

  RANGE LEFT FOR VALUES ('20100101','20110101','20120101','20130101')

文件組

分區(qū)

取值范圍

[FG1]

1

(過(guò)去某年, 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, 未來(lái)某年]

  1. 測(cè)試四:刪除分區(qū)函數(shù)的第一個(gè)值

  當(dāng)使用MERGE RANGE ('20100101'),合并后分區(qū)就相當(dāng)于:

  RANGE LEFTFOR VALUES ('20110101','20120101','20130101') 

文件組

分區(qū)

取值范圍

[FG?]

1

(過(guò)去某年, 2011/01/01]

[FG3]

2

(2011/01/01, 2012/01/01]

[FG4]

3

(2012/01/01, 2013/01/01]

[PRIMARY]

4

(2013/01/01, 未來(lái)某年]

  問(wèn)題:是[FG1]合并到[FG2],還是[FG2]合并到[FG1]呢?

  測(cè)試結(jié)果:[FG1]合并到[FG2]

  2. 測(cè)試五:刪除分區(qū)函數(shù)的第二個(gè)值

  當(dāng)使用MERGE RANGE ('20110101'),合并后分區(qū)就相當(dāng)于:

  RANGE LEFTFOR VALUES ('20100101','20120101','20130101') 

文件組

分區(qū)

取值范圍

[FG1]

1

(過(guò)去某年, 2010/01/01]

[FG?]

2

(2010/01/01, 2012/01/01]

[FG4]

3

(2012/01/01, 2013/01/01]

[PRIMARY]

4

(2013/01/01, 未來(lái)某年]

  問(wèn)題:是[FG2]合并到[FG3],還是[FG3]合并到[FG2]呢?

  測(cè)試結(jié)果:[FG2]合并到[FG3]

  3. 測(cè)試六:刪除分區(qū)函數(shù)的最后一個(gè)值

  當(dāng)使用MERGE RANGE ('20130101'),合并后分區(qū)就相當(dāng)于:

  RANGE LEFTFOR VALUES ('20100101','20110101','20120101') 

文件組

分區(qū)

取值范圍

[FG1]

1

(過(guò)去某年, 2010/01/01]

[FG2]

2

(2010/01/01, 2011/01/01]

[FG3]

3

(2011/01/01, 2012/01/01]

[?]

4

(2012/01/01, 未來(lái)某年]

  問(wèn)題:是[FG4]合并到[PRIMARY],還是[PRIMARY]合并到[FG4]呢?

  測(cè)試結(jié)果:[FG4]合并到[PRIMARY]

   三、結(jié)論

  下圖中形象的表述了邊界值(boundary_value)所處的分區(qū),符號(hào)“()”表示不包含,“[]”表示包含,一個(gè)圓圈帶叉圖標(biāo)表示需要?jiǎng)h除這個(gè)邊界值,當(dāng)使用MERGE RANGE的時(shí)候,數(shù)據(jù)庫(kù)就需要?jiǎng)h除一個(gè)分區(qū)的數(shù)據(jù),并把數(shù)據(jù)合并到另外一個(gè)分區(qū)中。你能從下圖看出結(jié)論嗎?

(圖1:分區(qū)函數(shù)為右邊界)

(圖2:分區(qū)函數(shù)為左邊界)

  結(jié)論:刪除的這個(gè)邊界值(boundary_value)屬于哪個(gè)分區(qū),那么就會(huì)刪除這個(gè)分區(qū),再向鄰近的分區(qū)合并。鄰近的意思是以這個(gè)邊界值為臨界點(diǎn)的兩個(gè)分區(qū)。圖1與圖2就很好的解釋了這個(gè)結(jié)論。

  四、參考文獻(xiàn)

  實(shí)戰(zhàn)分區(qū)表:SQL Server 2k5&2k8系列(三)

  SQLServer 2005中的分區(qū)表(四):刪除(合并)一個(gè)分區(qū)

  合并分區(qū) 

it知識(shí)庫(kù)SQL Server 合并(刪除)分區(qū)解惑,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 武宣县| 威信县| 云和县| 崇文区| 通许县| 沛县| 梁河县| 江山市| 上饶县| 台中县| 巩义市| 元氏县| 呼伦贝尔市| 巩义市| 罗定市| 屏山县| 广南县| 台江县| 栖霞市| 万载县| 闻喜县| 宕昌县| 鹤山市| 宜州市| 伊金霍洛旗| 宁安市| 江口县| 伽师县| 济源市| 桃江县| 柏乡县| 河津市| 台州市| 白山市| 方正县| 北辰区| 曲周县| 都江堰市| 精河县| 永丰县| 霍山县|