随着时间的推移,你可能会希望为已分区的表添加额外的分区(例如,可以为每一个新年创建一个新的分区)。要增加一个新的分区,可以使用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 )
  5. }

表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个分区中。

转载于:https://www.cnblogs.com/xirilingfeng/p/3402335.html

Sql Server 分区之后增加新的分区相关推荐

  1. 如何在计算机中增加硬盘分区,win10系统电脑下增加新磁盘分区的操作方法

    有关win10系统电脑下增加新磁盘分区的操作方法想必大家有所耳闻.但是能够对win10系统电脑下增加新磁盘分区进行实际操作的人却不多.其实解决win10系统电脑下增加新磁盘分区的问题也不是难事,小编这 ...

  2. RK3566 android11 增加新的分区,恢复出厂数据不会清除

    客户要求保存一段数据,可写入读取,恢复出厂后数据也不会被删除.增加private分区,专门给客户app使用. 增加分区有俩种方式,俩种方式不能同时使用. 1.通过升级工具烧录镜像的方式: 2.reco ...

  3. suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区

    引言:我们常常在使用系统的时候突然发现,哎呦~~~我们的磁盘空间不够用啦!我遇到常见的就是数据库数据暴增,预留的空间没有啦,只好新添加磁盘,在VB虚拟机上就可以实现,往往苦于没有图文并茂的好资料,下面 ...

  4. sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 适用环境 操作系统:wi ...

  5. 使用一下SQL Server 2008中的新日期函数

    在我们开始讨论SQL Server 2008中新的日期数据类型之前,先来回顾一下SQL Server 2005中以及更老版本中提供的两种日期数据类型,这些旧的数据类型是DATETIME和SMALLDA ...

  6. SQL Server Denali:SSDT新功能解读

    T-SQL编辑器 T-SQL编辑器支持在线和离线的数据库上写和执行Transact-SQL代码.编辑器提供一个丰富的编辑和导航环境,支持Microsot的自动完成工具IntelliSense.调式和声 ...

  7. linux 怎么把新硬盘分区,linux添加新硬盘分区

    一.添加硬盘 1.选择"VM"----"setting"并打开,将光标定位在hard Disk这一选项,然后点击下方的Add按钮 2.点击next,执行下一个步 ...

  8. XP下安装SQL SERVER企业版的一个新方法(转载)

    原帖地址:http://topic.csdn.net/T/20060314/14/4613478.html ------------------ 近日,因为参与一个项目开发,该项目要求只能用正版软件. ...

  9. SQL Server 2019 (15.x) 新特性概要

    2019.11.4 SQL Server 2019发布,趁热打铁了解下2019的新特性.下面整理一些个人感觉重要的或者工作上能用到的新特性,有删减,完整版参考 SQL Server 2019 中的新增 ...

  10. sql server 快照_添加新文章,删除文章,更改快照文件夹路径和SQL Server复制中的数据筛选器行

    sql server 快照 In the last articles, we have learned Configuring Snapshot and Transactional SQL Serve ...

最新文章

  1. Blender 3.0机器人硬面建模材质渲染全流程学习课程
  2. 贪心 双指针----Codeforces Round #727 (Div.2) D. PriceFixed
  3. 十天精通CSS3学习笔记 part2
  4. java面试难吗_面试两个月,整理了今年的最新java面试题,你看行吗?
  5. [JSConf EU 2018] 大脑控制 Javascript
  6. Knative Service 之流量灰度和版本管理
  7. uni-app 实现微信授权登录
  8. 会玩!抖音上线拉春联特效 “拜个抖音年”活动参与人数超65万
  9. python中pow_如何在python中找到pow(a,b,c)的反向?
  10. 【Python】Python中的日志级别
  11. 只有1kb的清理软件_1kb病毒专杀工具下载
  12. java打飞机游戏完整代码
  13. Nim理论初探——编程之美1.12
  14. 【AAC 系列一】Android 应用架构新时代来临!
  15. vue3.0 ts版项目配置axios
  16. 2012服务器优化工具,Windows server 2012服务器安全加固与web环境配置优化
  17. 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题
  18. 大学MOOC现代礼仪试题用哪个搜题软件好?里面的题库难吗?
  19. 某pdf转word v6.3.0.2算法分析
  20. linux切换用户时报错 bash: /home/book/.bashrc: 权限不够 bash-4.2$

热门文章

  1. 从Android到React Native开发(三、自定义原生控件支持)
  2. 算法----其他排序
  3. win7/64位下python2.7、easy_install安装经验
  4. 神秘的 shadow-dom 浅析
  5. 【经验总结】js关闭当前页面/关闭当前窗口(兼容所有浏览器)
  6. 手把手教你做iOS的soap应用(webservice)
  7. Ubuntu 安装配置 ROR3
  8. 从团购的“占便宜”心态说起
  9. springboot生成包含特定数字_关于Spring Boot 这可能是全网最好的知识点总结
  10. 自媒体各大平台收益对比_自媒体推广平台都有哪些?