SQL 2008 分区表的应用
在某些大型的数据库中,我们可能会用到分区表.
比如说:你的表数据量很大,如果你一定要说有多大,那么我认为是每月1000W,
那么你把一年的数据都存在一个表里让他达到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)
- 2. 添加一个分区
a) 为分区方案添加一个新的文件分组
ALTER PARTITION SCHEME [分区方案名]
NEXT USED [文件组名]
b) 为分区函数添加一个新的分区
ALTER PARTITION FUNCTION [分区函数名]()
SPLIT RANGE ('2011-09-01T00:00:00.000')
- 3. 删除一个分区
a) ALTER PARTITION FUNCTION [分区函数名称]()
MERGE RANGE ('20100101')
- 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')

浙公网安备 33010602011771号