首页 > 代码库 > sql server分区
sql server分区
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分区