随着时间的推移,你可能会但愿为已分区的表添加额外的分区(例如,能够为每个新年建立一个新的分区)。要增长一个新的分区,能够使用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个分区中。