背景知识:

分区表、可以把表中的数据按范围保存到不同的文件组中。

举个例子吧:

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 分区表的创建方法与管理的更多相关文章

  1. SQL Server ->> 分区表上创建唯一分区索引

    今天在读<Oracle高级SQL编程>这本书的时候,在关于Oracle的全局索引的章节里面有一段讲到如果对一张分区表创建一条唯一索引,而索引本身也是分区的,那就必须把分区列也加入到索引列表 ...

  2. SQL Server COM 组件创建实例失败

    SQL Server COM 组件创建实例失败   SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-497E-B2F9-AF6AA4759 ...

  3. SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻

    http://blog.csdn.net/weiwenhp/article/details/8094739 目录(?)[-] SQL Server权限管理 login 与user的区别 角色role ...

  4. 删除SQL Server大容量日志的方法(转)

    删除SQL Server大容量日志的方法 亲自实践的方法 1.分享数据库,如果提示被其他连接占用,不能分离,刚勾上drop connections 2.复制下所有文件,一定要备份好,以防自己操作失误 ...

  5. 利用Microsoft Sql Server Management studio 创建数据库的示例

    利用Microsoft Sql Server Management studio 创建数据库的示例方法如下:   一.打开安装好的Microsoft Sql Server Management stu ...

  6. 如何实现SQL Server临时表的创建?

    以下的文章主要是对SQL Server临时表的创建的实际操作步骤,以及在实际操作中我们要用到的实际应用代码的介绍,我在一个信誉度很好的网站找到一个关于其相关内容今天拿出来供大家分享. 创建临时表 方法 ...

  7. [转]SQL SERVER数据库还原的方法

    SQL SERVER数据库还原的方法 在SQL SERVER 2005下还原数据库 1.新建数据库A,右键还原数据库,此时目标数据库为A,选择备份 文件B_db_201311040200.BAK,还原 ...

  8. Update导致SQL Server死锁的典型方法(转载)

    此文为转载文章,描述的很好,没有验证过. 最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题.这个死锁看上去难以理解.而分析过程中,又使用了很多分析SQL Server死锁的典型方法.记录下来整个 ...

  9. 使用SQL Server Management Studio 创建作业备份数据库

    在项目中,经常需要备份数据库,如果能做到只需点个按钮(“开始备份数据库”按钮),然后什么都不管,数据库就自动备份好了,或者服务器上的数据库隔一段时间自动备份一次,那该多好啊. Sql server 的 ...

随机推荐

  1. Linux上使用Azure CLI来管理Azure

    在Windows上我们有强大的Powershell提供各种命令来管理Azure的服务,在Linux上微软提供了基于Node.JS的跨平台的Azure Command Line来帮助Linux用户来管理 ...

  2. Multi-Channel MAC for Ad Hoc Networks: Handling Multi-Channel Hidden Terminals Using A Single Transceiver

    MAC协议 2004 这是一个单纯的Multi-Channel Ad Hoc场景,多信道,但不是DSA.没有PU,只是多信道利用问题,相对传统Ad Hoc,要解决的就是1)信道访问(如何使用多个信道) ...

  3. 关于Redis的一些常识

    http://blog.csdn.net/mengxianhua/article/details/8961713 关于Redis的一些常识 2013-05-22 18:00 13315人阅读 评论(0 ...

  4. Qt编程之QImage类小结

    最近用Qt做图像处理,以下references是需要用到的 references: http://blog.csdn.net/lyc_daniel/article/details/9193881 ht ...

  5. 一 VC2008环境中ICE的配置

    VC2008环境中ICE的配置 ICE 3.4.0的下载页面 http://www.zeroc.com/download_3_4_0.html 环境变量配置  1.Ice-3.4.0安装到c:\Ice ...

  6. FVANCOP/ChartNew.js

    FVANCOP/ChartNew.js FVANCOP/ChartNew.js

  7. JAVA JNI

    jni非常好的一篇文章 http://m.blog.csdn.net/article/details?id=22827307 JAVA JNI介绍 http://blog.csdn.net/cyg08 ...

  8. UE是什么意思?用户体验设计师与UE设计是什么关系?

    本文来自:http://blog.sina.com.cn/s/blog_a6bebb3f01015h47.html 什么是UE(UE——UE就是用户体验度) 你会发觉他的使用很人性化:功能强大但操作简 ...

  9. Android应用程序中的多个Activity的显示创建和调用

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTkzNjE0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  10. Unity uGUI 登录及注册功能

    上次我们已经完成了登录界面的模拟功能,今天咱们把上次没做完的继续完善下!那么废话少说直接开始吧! PS:本次完善的功能有: 1,增加对数据库的操作. 2,使用了MD5Key值加密 3,完善登录和组测功 ...