SQL Server 分区表的创建方法与管理
背景知识:
分区表、可以把表中的数据按范围保存到不同的文件组中。
举个例子吧:
2014年以前的数据保存到文件组A
2014~2015的数据保存到文件组B
2015年以后的数据保存到文件组C
好处:
1、提高IO性能 --- 文件组中的文件可以位于不同的磁盘,多磁盘协同工作,提升性能。
2、方便管理 --- 备份方面为管理提供了更多的选择,数据归档方便。
前期准备:添加文件组与文件
alter database Studio
add filegroup FG1;
go
alter database Studio
add filegroup FG2;
go
alter database Studio
add filegroup FG3;
go
alter database Studio
add file(name = FG1_File,filename='E:\DB\FG1_File.ndf');
go
alter database Studio
add file(name = FG2_File,filename='E:\DB\FG2_File.ndf');
go
alter database Studio
add file(name = FG3_File,filename='E:\DB\FG3_File.ndf');
go
操作 1、
创建分区表,分如下几步
第一步 、
创建分区函数:
它用来把表从逻辑上分成不同的几份 如: 0~2014,2014~2015,2015~....
create partition function pf_for_myTable(datetime)
as range left
for values('2014-01-01','2015-01-01');
go -- 把表从逻辑上分成三份。或是说三个不同的逻辑分区

第二步:
创建分区方案、它主要是把表的逻辑分区与数据库中的文件组绑定。比如说:第一个分区保存到FG1,第二个分区保存到FG2,第三个分区保存到FG3
create partition scheme ps_for_myTable
as partition pf_for_myTable
to (FG1,FG2,FG3);
go

第三步:
建表
create table myTable2(DT datetime, DataValue nvarchar(30))
on ps_for_myTable(DT);
操作 2、
查看指定数据所在的分区
$partition.partition_function_name(value);
select $partition.pf_for_myTable('2014-10-04');

操作 3、
为表添加新的分区。
第一步:修改分区方案
指定下一个分区使用的文件组。
alter partition scheme ps_for_myTable
next used [primary];
go
第二步:修改分区函数
alter partition function pf_for_myTable() -- 看到没有这个没有加datatime 加了就错了
split range ('2016-01-01');
go
操作 4、
移除分区
第一步:
alter partition function pf_for_myTable()
merge range('2016-01-01');
go
操作 5、
把分区移动到不同的表
前期准备工作
create table myTableHistory(DT datetime, DataValue nvarchar(30));
go -- 两个表的定义要完全一样,分不分区的没有关系
第一步:
移动
alter table myTable2 switch partition 1
to myTableHistory;
go
它的基本语法如下:
alter table source_table_name switch [partition partition_number]
to [schema.] target_table_name [partition partition_number]
总结:
SQL Server 分区表的创建方法与管理的更多相关文章
- SQL Server ->> 分区表上创建唯一分区索引
今天在读<Oracle高级SQL编程>这本书的时候,在关于Oracle的全局索引的章节里面有一段讲到如果对一张分区表创建一条唯一索引,而索引本身也是分区的,那就必须把分区列也加入到索引列表 ...
- SQL Server COM 组件创建实例失败
SQL Server COM 组件创建实例失败 SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA4759 ...
- SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻
http://blog.csdn.net/weiwenhp/article/details/8094739 目录(?)[-] SQL Server权限管理 login 与user的区别 角色role ...
- 删除SQL Server大容量日志的方法(转)
删除SQL Server大容量日志的方法 亲自实践的方法 1.分享数据库,如果提示被其他连接占用,不能分离,刚勾上drop connections 2.复制下所有文件,一定要备份好,以防自己操作失误 ...
- 利用Microsoft Sql Server Management studio 创建数据库的示例
利用Microsoft Sql Server Management studio 创建数据库的示例方法如下: 一.打开安装好的Microsoft Sql Server Management stu ...
- 如何实现SQL Server临时表的创建?
以下的文章主要是对SQL Server临时表的创建的实际操作步骤,以及在实际操作中我们要用到的实际应用代码的介绍,我在一个信誉度很好的网站找到一个关于其相关内容今天拿出来供大家分享. 创建临时表 方法 ...
- [转]SQL SERVER数据库还原的方法
SQL SERVER数据库还原的方法 在SQL SERVER 2005下还原数据库 1.新建数据库A,右键还原数据库,此时目标数据库为A,选择备份 文件B_db_201311040200.BAK,还原 ...
- Update导致SQL Server死锁的典型方法(转载)
此文为转载文章,描述的很好,没有验证过. 最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题.这个死锁看上去难以理解.而分析过程中,又使用了很多分析SQL Server死锁的典型方法.记录下来整个 ...
- 使用SQL Server Management Studio 创建作业备份数据库
在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...
随机推荐
- python笔记之bisect模块
python笔记之bisect模块 当你决定使用二分搜索时,这个模块会给你带来很大的帮助. 例子 import bisect L = [1,3,3,6,8,12,15] x = 3 #在L中查找x,x ...
- LFS,编译自己的Linux系统 - 准备分区
分区 之前在安装ubuntu时已经分好了. 建立文件系统 sudo mkfs –v –t ext4 /dev/sda3 挂载文件系统 sudo mkdir /mnt/lfs sudo mount –v ...
- STL中vector,Map,Set的实现原理
vector的数据安排以及操作方式,与array非常类似,两者唯一的区别是空间运用的灵活性,array是静态空间,一旦配置了就不能改变,如果你想要大一点的空间,就必须首先配置一块新空间,然后将原来的元 ...
- POJ 1020 Anniversary Cake(DFS)
Anniversary Cake Time Limit: 1000MSMemory Limit: 10000KB64bit IO Format: %I64d & %I64u Submit St ...
- 实现TCP断点上传,后台C#服务实现接收
实现TCP断点上传,后台C#服务实现接收 终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现, ...
- c#POST请求和接收post请求
c# post请求发送数据 /// <summary> /// POST请求 /// </summary> /// <param name="url" ...
- Effective Java2读书笔记-创建和销毁对象(二)
第3条:用私有构造器或者枚举类型强化Singleton属性 这一条,总体来说,就是讲了一个小技巧,将构造器声明为private,可以实现单例.具体有以下几种实现的方式. ①最传统的单例实现模式,可能有 ...
- Ubuntu14.04安装PostpreSQL9.3.5记录
安装参考:http://www.postgresql.org/download/linux/ubuntu/ y@y:~$ sudo apt-get install postgresql-9.3 pos ...
- 在COM组件中调用JavaScript函数
转载自: http://blog.csdn.net/cheungmine/article/details/1451489 要求是很简单的,即有COM组件A在IE中运行,使用JavaScript(JS) ...
- javac命令详解(下)
摘自http://blog.csdn.net/hudashi/article/details/7058999 javac命令详解(下) -ver ...