sql server分区

Posted 陈阿弟Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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分区的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 数据分区管理

SQL Server 数据分区管理

SQL Server 表分区之水平表分区

sql server 分区(上)

sql server 分区

SQL Server PARTITION FUNCTION(分区)