SQL 2008 分区表的应用

在某些大型的数据库中,我们可能会用到分区表.

比如说:你的表数据量很大,如果你一定要说有多大,那么我认为是每月1000W,

那么你把一年的数据都存在一个表里让他达到1亿,那显然是不合理的,也有人会把它分成多个表,每月一表.

但是那样在你编写查询,或者对表进行操作的时候将非常的不方便.

如果你满足了以上条件,那么恭喜你,分区表给你带来福音

 

下面是我整理的一些对分区表进行操作的语句,非常有用.几乎无敌

 

  1. 1.  创建一个分区

a)   创建一个分区

CREATE PARTITION FUNCTION 分区方案 (datetime)  
AS RANGE RIGHT FOR VALUES ('20100101','20110101','20120101','20130101')

 

b)   添加分区方案

CREATE PARTITION SCHEME 分区方案

AS PARTITION 分区函数    

TO ( Sale2009, Sale2010, Sale2011, Sale2012, Sale2013)   

  1. 2.  添加一个分区

a)        为分区方案添加一个新的文件分组

ALTER PARTITION SCHEME [分区方案名]

NEXT USED [文件组名] 

 

b)   为分区函数添加一个新的分区

ALTER PARTITION FUNCTION [分区函数名]() 

SPLIT RANGE ('2011-09-01T00:00:00.000') 

  1. 3.  删除一个分区

a)   ALTER PARTITION FUNCTION [分区函数名称]()  
MERGE RANGE ('20100101')

 

  1. 4.  查询分区的记录

a)   根据分区表ID查询该分区内的所有记录

select * from LoginfoHistory where $PARTITION.Loginfohistorybycreatetime(createtime)=4

 

b)   查询所有分区的记录条数

select $PARTITION.Loginfohistorybycreatetime(createtime)

as 分区编号,count(1) as 记录数 from LoginfoHistory group by $PARTITION.Loginfohistorybycreatetime(createtime) 

 

c)   查询字段对应的分区ID

select $PARTITION.Loginfohistorybycreatetime('2011-3-01')

 

posted @ 2011-10-27 17:15  dearz  阅读(1286)  评论(0)    收藏  举报