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 的 ...
随机推荐
- 搜索打表大找规律 (hdu2045)
不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- opencv学习之旅_绘制跟踪轨迹
如何将运动物体的轨迹画出来 我的想法是先:用CAMSHIFT跟踪物体,这个函数会返回一个track_box,将box的中心提取出来,然后以这个中心在另外的图像上画出来,然后将这张图像处理,提取轮廓,提 ...
- javascript调试
今天,发现了一个之前从未注意的角落,相信能够大大提高自己写JS的速度.能够迅速发现错误. 例如,今天的加班中调试一个js错误发现的一个例子. 1.Google浏览器报的错 以上是google浏览器报的 ...
- 压缩、解压缩流GZipStream
如果要在压缩过程中检查错误或要与其他操作系统所用程序共享压缩数据,则要是用GZipStream类.GZipStream类包含是用GZip数据格式进行压缩和解压缩文件的方法,该类不能用于解压缩大于4GB ...
- .net 反编译利器 dnspy
Binaries Latest release: https://github.com/0xd4d/dnSpy/releases Latest build (possibly unstable): h ...
- C#安装程序制作让安装后的程序开机自动运行
1.创建安装项目后要在自己的解决方案是添加一个新的类库项目(ClassLibrary1),并在新类库中添加一下安装程序类(Installer1),在Installer1类中添加如下代码: string ...
- build.gradle中引入jar
只需在 dependencies{}中添加: compile fileTree(include: ['*.jar'], dir: 'libs')
- Android APP开发需求文档范本
Android APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...
- execute immediate的简单用法(oracle)
直接上示例代码: create or replace procedure proc_test( --参数区域 ) is --变量区域 --sql脚本 v_sql ) :=''; --记录学生数量 v_ ...
- [转]Traceroute网络排障实用指南(1)
注:本文是同事的大作,虽是翻译的一篇英文PPT,但内容实在精彩,小小的Traceroute竟包含如此大的信息量,真是让人感慨!内容不涉及公司机密,所以一直想转到自己的Blog上来,自己需要时可以再翻阅 ...