隨着時間的推移,你可能會但願爲已分區的表添加額外的分區(例如,能夠爲每個新年建立一個新的分區)。要增長一個新的分區,能夠使用ALTER PARTITION SCHEME和ALTER PARTITION FUNCTION命令。sql
要想爲一個既有的分區函數建立新的分區,首先必須準備一個文件組來保存新分區的數據(新的或者已有的文件組都行)。第一步是使用ALTER PARTITION SCHEME來指定下一個分區文件組。函數
ALTER PARTITION SCHEME的語法以下:佈局
表4-20詳細描述了此命令的參數。測試
表4-20 ALTER PARTITION SCHEME參數spa
參數隊列 |
描述ci |
partition_scheme_nameit |
這個參數指定了需io 要修改的分區方案名table |
NEXT USED [filegroup_name] |
NEXT USED關鍵字把下一個 文件組列入使用隊列,讓任何新的分區使用 |
在增長了下一個文件組的引用以後,使用ALTER PARTITION FUNCTION來建立(分割)新的分區(移除/合併分區也同樣)。ALTER PARTITION FUNCTION的語法以下:
表4-21詳細描述了此命令的參數。
表4-21 ALTER PARTITION FUNCTION參數
參數 |
描述 |
partition_function_name |
這個參數指定了要從中 添加或移除分區的分區函數名 |
SPLIT RANGE ( boundary_value ) | MERGE RANGE ( boundary_value ) |
SPLIT RANGE經過定義一 個新的邊界值來建立一個 新的分區。MERGE RANGE 用於移除一個既有的分區 |
這個示例演示如何建立(分割)一個新的分區。第一步就是新建一個爲新分區所用的文件組。在本例中,使用PRIMARY文件組:
接着,修改分區函數來建立新的分區,定義邊界爲2009年1月1日:
在新分區建立後,插入一個新行來測試新分區:
使用$PARTITION來查詢表:
這個查詢顯示新插入的行已經存儲到了新的分區中(分區號5):
解析
在這個技巧的示例中,使用ALTER PARTITION SCHEME和NEXT USED關鍵字來修改HitDateRange- Scheme。NEXT USED關鍵字把下一個文件組加入隊列,供新的分區使用。默認的PRIMARY文件組被選爲新分區的目標存儲區:
而後使用ALTER PARTITION FUNCTION和SPLIT RANGE來加入一個新的分區邊界:
添加新的分區只須要使用一個新值,實際上是使用原來的邊界類型(LEFT或RIGHT)把一個既有的分區範圍分紅了2份。一次分離只能夠使用一次SPLIT RANGE--不能夠在一條語句中增長多個分區。
這個示例的分割增長了一個新的分區#5,如表4-22所示。
表4-22 新的分區佈局
位 置 # |
最小的時間 |
最大的時間 |
1 |
最小容許的時間 |
1/1/2006 00:00:00 |
2 |
1/1/2006 00:00:01 |
1/1/2007 00:00:00 |
3 |
1/1/2007 00:00:01 |
1/1/2008 00:00:00 |
4 |
1/1/2008 00:00:01 |
1/1/2009 00:00:00 |
5 |
1/1/2009 00:00:01 |
最大容許的時間 |
向表Sales.WebSiteHits插入了新的一行,使用了分區函數。而後執行查詢來查看每行所屬的分區,並確認了新行插入到了第5個分區中。