sql 分区

本文详细介绍了SQL Server中分区表的概念、作用和操作步骤,包括分区表的逻辑与物理结构、分区的原因、分区的创建与管理,以及分区对性能和管理的提升。通过实例展示了如何定义分区函数、分区构架以及创建分区表,并讨论了分区的分割和合并操作。
摘要由CSDN通过智能技术生成
转自 http://www.cnblogs.com/sienpower/archive/2011/12/31/2308741.html

简介


    分区表是在SQL SERVER2005之后的版本引入的特性。这个特性允许把逻辑上的一个表在物理上分为很多部分。而对于SQL SERVER2005之前版本,所谓的分区表仅仅是分布式视图,也就是多个表做union操作.

    分区表在逻辑上是一个表,而物理上是多个表.这意味着从用户的角度来看,分区表和普通表是一样的。这个概念可以简单如下图所示:

    1

     而对于SQL SERVER2005之前的版本,是没有分区这个概念的,所谓的分区仅仅是分布式视图:

     3

     本篇文章所讲述的分区表指的是SQL SERVER2005之后引入的分区表特性.

 

为什么要对表进行分区


     在回答标题的问题之前,需要说明的是,表分区这个特性只有在企业版或者开发版中才有,还有理解表分区的概念还需要理解SQL SERVER中文件和文件组的概念.

     对表进行分区在多种场景下都需要被用到.通常来说,使用表分区最主要是用于:

  •      存档,比如将销售记录中1年前的数据分到一个专门存档的服务器中
  •      便于管理,比如把一个大表分成若干个小表,则备份和恢复的时候不再需要备份整个表,可以单独备份分区
  •      提高可用性,当一个分区跪了以后,只有一个分区不可用,其它分区不受影响
  •      提高性能,这个往往是大多数人分区的目的,把一个表分布到不同的硬盘或其他存储介质中,会大大提升查询的速度.

 

分区表的步骤


    分区表的定义大体上分为三个步骤:

  1.     定义分区函数
  2.     定义分区构架
  3.     定义分区表

    分区函数,分区构架和分区表的关系如下:

    2

 

 

    分区表依赖分区构架,而分区构架又依赖分区函数.值得注意的是,分区函数并不属于具体的分区构架和分区表,他们之间的关系仅仅是使用关系.

    下面我们通过一个例子来看如何定义一个分区表:

     假设我们需要定义的分区表结构如下:

     4

     第一列为自增列,orderid为订单id列,SalesDate为订单日期列,也就是我们需要分区的依据.

     下面我们按照上面所说的三个步骤来实现分区表.

 

 

定义分区函数


    分区函数是用于判定数据行该属于哪个分区,通过分区函数中设置边界值来使得根据行中特定列的值来确定其分区,上面例子中,我们可以通过SalesDate的值来判定其不同的分区.假设我们想定义两个边界值(boundaryValue)进行分区,则会生成三个分区,这里我设置边界值分别为2004-01-01和2007-01-01,则前面例子中的表会根据这两个边界值分成三个区:

    5

    在MSDN中,定义分区函数的原型如下:

CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )
AS RANGE [ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值