码迷,mamicode.com
首页 > 数据库 > 详细

sql server分区

时间:2017-06-29 15:20:40      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:group   where   分区表   led   foo   func   block   sql   索引   


1. 创建分区

分区步骤:1.创建分区函数  2.创建分区架构 3.创建分区索引(聚集)

 


--1. 创建分区函数
DECLARE @dt datetime
SET @dt = ‘20030901‘
CREATE PARTITION FUNCTION PF_History(datetime)
AS RANGE RIGHT
FOR VALUES(
    @dt,
    DATEADD(Month, 1, @dt), DATEADD(Month, 2, @dt), DATEADD(Month, 3, @dt),
    DATEADD(Month, 4, @dt), DATEADD(Month, 5, @dt), DATEADD(Month, 6, @dt),
    DATEADD(Month, 7, @dt), DATEADD(Month, 8, @dt), DATEADD(Month, 9, @dt),
    DATEADD(Month, 10, @dt), DATEADD(Month, 11, @dt), DATEADD(Month, 12, @dt))
GO
--2. 创建分区架构
CREATE PARTITION SCHEME PS_History
AS PARTITION PF_History
TO([PRIMARY], [PRIMARY],
    [PRIMARY], [PRIMARY], [PRIMARY],
    [PRIMARY], [PRIMARY], [PRIMARY],
    [PRIMARY], [PRIMARY], [PRIMARY],
    [PRIMARY], [PRIMARY], [PRIMARY])
GO

--3. 创建分区索引(聚集)
----- 1) 删除现有的聚集索引
----- 2) 创建分区聚集索引
CREATE CLUSTERED INDEX CT_Sale ON Sale([SaleTime])
ON 分区方案名([SaleTime]) 

 

查询语句

--查询

--查询数据所在的分区
select $PARTITION.PF_T_SERVICE_LOG(‘2000-06-30 17:13:57.883‘) AS 分区编号
--统计所有分区表中的记录总数   
select $PARTITION.PF_T_SERVICE_LOG(tm) as 分区编号,count(id) as 记录数 from T_SERVICE_LOG group by $PARTITION.PF_T_SERVICE_LOG(tm)
--查询指定分区编号下的记录
select * from T_SERVICE_LOG where $PARTITION.PF_T_SERVICE_LOG(tm)=2

 

 

 

 

资料: http://blog.csdn.net/smallfools/article/details/4934119

** 将已分区表转换成普通表: http://blog.csdn.net/smallfools/article/details/5004100

 

动态生成分区脚本: http://www.cnblogs.com/gaizai/archive/2011/01/14/1935579.html

http://www.cnblogs.com/knowledgesea/p/3696912.html

sql server分区

标签:group   where   分区表   led   foo   func   block   sql   索引   

原文地址:http://www.cnblogs.com/chencidi/p/7094261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!