Sql Server 分区之后增加新的分区
随着时间的推移,你可能会希望为已分区的表添加额外的分区(例如,可以为每一个新年创建一个新的分区)。要增加一个新的分区,可以使用ALTER PARTITION SCHEME和ALTER PARTITION FUNCTION命令。
要想为一个既有的分区函数创建新的分区,首先必须准备一个文件组来保存新分区的数据(新的或者已有的文件组都行)。第一步是使用ALTER PARTITION SCHEME来指定下一个分区文件组。
ALTER PARTITION SCHEME的语法如下:
- ALTER PARTITION SCHEME partition_scheme_name
- 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的语法如下:
- ALTER PARTITION FUNCTION partition_function_name()
- {
- SPLIT RANGE ( boundary_value )
- | 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文件组:
- ALTER PARTITION SCHEME HitDateRangeScheme
- NEXT USED [PRIMARY]
接着,修改分区函数来创建新的分区,定义边界为2009年1月1日:
- ALTER PARTITION FUNCTION HitDateRange ()
- SPLIT RANGE ('1/1/2009')
在新分区创建后,插入一个新行来测试新分区:
- INSERT Sales.WebSiteHits
- (WebSitePage, HitDate)
- VALUES ('Sales Page', '3/4/2009')
使用$PARTITION来查询表:
- SELECT HitDate,
- $PARTITION.HitDateRange (HitDate) Partition
- FROM Sales.WebSiteHits
这个查询显示新插入的行已经存储到了新的分区中(分区号5):
- HitDate Partition
- 2000-03-04 00:00:00.000 1
- 2006-10-02 00:00:00.000 2
- 2007-10-22 00:00:00.000 3
- 2008-05-09 00:00:00.000 4
- 2009-03-04 00:00:00.000 5
解析
在这个技巧的示例中,使用ALTER PARTITION SCHEME和NEXT USED关键字来修改HitDateRange- Scheme。NEXT USED关键字把下一个文件组加入队列,供新的分区使用。默认的PRIMARY文件组被选为新分区的目标存储区:
- ALTER PARTITION SCHEME HitDateRangeScheme
- NEXT USED [PRIMARY]
然后使用ALTER PARTITION FUNCTION和SPLIT RANGE来加入一个新的分区边界:
- ALTER PARTITION FUNCTION HitDateRange ()
- 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个分区中。
Sql Server 分区之后增加新的分区的更多相关文章
- LVM 管理减少swap分区空间增加到根分区
简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现 ...
- SQL Server 2012 实现分页新语法
最近一直在看SQL Server的书,不过看的都是基础的查询流,查询在工作中用到的最多,所以能正确地查询出想要的数据也是很重要的嘛. 在书上看到在SQL Server 2012新增了一种实现分页的查询 ...
- 本地数据库(sql server)插入一条新数据时,同步到服务器数据库
之前有个同学问我,本地数据库插入新数据时怎么同步到服务器上,当时我先想到是程序逻辑控制,作相应的处理. 但有时候我们程序不太好处理,那能不能从数据库入手呢,数据库不是有触发器(Trigger)吗,应该 ...
- [转]SQL Server 2012 的 T-SQL 新功能 – 新的数据分析函数(LEAD、LAG)
当您需要在 SQL Server 中利用 T-SQL 比较结果集的每一列跟前一列或后一列的差异时,在过去可能需要利用 CURSOR 搭配临时表变量,或是透过递归 CTE 来达到这个效果,如今 SQL ...
- 如何在Win7电脑上增加新磁盘分区?
原文链接: https://www.cnblogs.com/haoxitong/p/9405497.html 我们在重装好系统Win7系统后有时会碰到需要新建磁盘分区的情况,这时我们再重装系统进行磁盘 ...
- ArcGIS Server 缓存服务增加新比例尺缓存
win10 + Server 10.4 + ArcMap 10.4 操作简单说明: ①窗口上方Customize栏→Toolbars→ Customize→ 搜索到 manege map serv ...
- SQL Server CONVERT() 日期转换为新数据类型的 通用函数
http://www.w3school.com.cn/sql/func_convert.asp
- sql server 判断及增加列的默认值约束
IF NOT EXISTS ( SELECT name FROM sysobjects WHERE id = ( SELECT syscolumns.cdefault FROM sysobjects ...
- SQL Server 2017命令创建新账户(test-user),并分配数据库权限
-- 1. 创建登录账号USE [master];GOCREATE LOGIN [test-user] WITH PASSWORD = 'xysu7SZ193SNX6E{{HxubPE3}vr',DE ...
随机推荐
- Nancy+BUI+SQLite自动更新服务端和客户端保护更新程序
写了一个自动更新服务网站和自动更新客户端.基本功能测试完毕.记录下 项目地址:https://github.com/TeemoHQ/AutoUpdate 需求 自动集成,回退版本,守护进程,服务端操作 ...
- linux系统下的软连接与硬链接
前几天在linux系统下安装mongoDB,然后运行脚本导入数据的时候遇到了链接库查询不到的情况,如图 1所示.当时是通过创建软连接的方式解决的这个问题.虽然,通过网上的教程解决了这个问题,但是对于软 ...
- IT在线学习网站总结
以下是我自己做软件过程中发现的一些不错的IT学习网站,个人感觉比较受用,故总结出来以供IT爱好者一起学习: www.maiziedu.com 麦子学院 www.jikexueyuan.com 极客学 ...
- Java上面出现这个错误如何解决关于XML的
Java上面出现这个错误如何解决关于XML的 2015-01-07 14:49 hejiashun11325 | 分类:JAVA相关 | 浏览265次 The type org.xmlpull.v1. ...
- Window 对象详解 转自 http://blog.csdn.net/jcx5083761/article/details/41243697
详解HTML中的window对象和document对象 标签: HTMLwindowdocument 2014-11-18 11:03 5884人阅读 评论(0) 收藏 举报 分类: HTML& ...
- 第六百一十二、三、四、五天 how can I 坚持
上火了啊..已经2017了,真快,人生只是一瞬间,到头来都是一场空. 2016年最后一天,很悲催,没赶上火车.还不能改签,哪能哪次都这么幸运,长记性了,下午到济南,看了看弟弟的房子,到挺不错,就是装修 ...
- C89和C99区别--简单总结
(1)对数组的增强 可变长数组 C99中,程序员声明数组时,数组的维数可以由任一有效的整型表达式确定,包括只在运行时才能确定其值的表达式,这类数组就叫做可变长数组,但是只有局部数组才可以是变长的.可变 ...
- centos配置vpn服务器
1.配置epel软件源wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm2.安装PPTP服务端软件yu ...
- css3、html5学习笔记
2016/12/14 ----认真看完绝对对你有帮助 HTML5针对移动端,移动端的浏览器主要是chrome,是webkit内核; app(applicatin):应用; native app:原生的 ...
- html window.open 使用详解
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no ...