zoukankan      html  css  js  c++  java
  • Sql Server 分区之后增加新的分区

    随着时间的推移,你可能会希望为已分区的表添加额外的分区(例如,可以为每一个新年创建一个新的分区)。要增加一个新的分区,可以使用ALTER PARTITION SCHEME和ALTER PARTITION FUNCTION命令。

    要想为一个既有的分区函数创建新的分区,首先必须准备一个文件组来保存新分区的数据(新的或者已有的文件组都行)。第一步是使用ALTER PARTITION SCHEME来指定下一个分区文件组。

    ALTER PARTITION SCHEME的语法如下:

    1. ALTER PARTITION SCHEME partition_scheme_name  
    2. NEXT USED [ filegroup_name ] 

    表4-20详细描述了此命令的参数。

    表4-20 ALTER PARTITION SCHEME参数

    参数

    描述

    partition_scheme_name

    这个参数指定了需

    要修改的分区方案名

    NEXT USED

     [filegroup_name]

    NEXT USED关键字把下一个

    文件组列入使用队列,让任何新的分区使用


    在增加了下一个文件组的引用之后,使用ALTER PARTITION FUNCTION来创建(分割)新的分区(移除/合并分区也一样)。ALTER PARTITION FUNCTION的语法如下:

    1. ALTER PARTITION FUNCTION partition_function_name()  
    2. {   
    3.     SPLIT RANGE ( boundary_value )  
    4.   | MERGE RANGE ( boundary_value )  

    表4-21详细描述了此命令的参数。

    表4-21 ALTER PARTITION FUNCTION参数

    参数

    描述

    partition_function_name

    这个参数指定了要从中

    添加或移除分区的分区函数名

    SPLIT RANGE ( boundary_value ) |

    MERGE RANGE ( boundary_value )

    SPLIT RANGE通过定义一

    个新的边界值来创建一个

    新的分区。MERGE RANGE

    用于移除一个既有的分区

    这个示例演示如何创建(分割)一个新的分区。第一步就是新建一个为新分区所用的文件组。在本例中,使用PRIMARY文件组:

    1. ALTER PARTITION SCHEME HitDateRangeScheme  
    2. NEXT USED [PRIMARY] 

    接着,修改分区函数来创建新的分区,定义边界为2009年1月1日:

    1. ALTER PARTITION FUNCTION HitDateRange ()  
    2. SPLIT RANGE ('1/1/2009') 

    在新分区创建后,插入一个新行来测试新分区:

    1. INSERT Sales.WebSiteHits  
    2. (WebSitePage, HitDate)  
    3. VALUES ('Sales Page', '3/4/2009') 

    使用$PARTITION来查询表:

    1. SELECT   HitDate,  
    2. $PARTITION.HitDateRange (HitDate) Partition  
    3. FROM Sales.WebSiteHits 

    这个查询显示新插入的行已经存储到了新的分区中(分区号5):

    1. HitDate                    Partition  
    2. 2000-03-04 00:00:00.000    1  
    3. 2006-10-02 00:00:00.000    2  
    4. 2007-10-22 00:00:00.000    3  
    5. 2008-05-09 00:00:00.000    4  
    6. 2009-03-04 00:00:00.000    5 

    解析

    在这个技巧的示例中,使用ALTER PARTITION SCHEME和NEXT USED关键字来修改HitDateRange- Scheme。NEXT USED关键字把下一个文件组加入队列,供新的分区使用。默认的PRIMARY文件组被选为新分区的目标存储区:

    1. ALTER PARTITION SCHEME HitDateRangeScheme  
    2. NEXT USED [PRIMARY] 

    然后使用ALTER PARTITION FUNCTION和SPLIT RANGE来加入一个新的分区边界:

    1. ALTER PARTITION FUNCTION HitDateRange ()  
    2. SPLIT RANGE ('1/1/2006') 

    添加新的分区只需要使用一个新值,其实是使用原来的边界类型(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个分区中。

  • 相关阅读:
    24-移动端app数据爬取
    24-移动端app数据爬取
    18闭包
    mysql日期 获取本月第一天 获取下个月的第一天
    介绍shell的来龙去脉给你看
    RHEL 和centos 的区别
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
    CDH管理界面查看各框架的版本(hive为例)
    Cloudera hadoop配置文件地址和修改配置属性方法
    idea快速创建级联目录
  • 原文地址:https://www.cnblogs.com/xirilingfeng/p/3402335.html
Copyright © 2011-2022 走看看