SQL SERVER 2008 表分区

表分区涉及到几个关键概念:


第一步:创建文件和文件组,并将相应的文件挂入相应的文件组

--增加文件组并给文件组增加文件
ALTER DATABASE DEMO ADD FILEGROUP FILE_GROUP_1
ALTER DATABASE DEMO ADD FILEGROUP FILE_GROUP_2
ALTER DATABASE DEMO ADD FILEGROUP FILE_GROUP_3

--给各个文件组增加相应的数据文件ndf
ALTER DATABASE DEMO
ADD FILE
(NAME=FG1_FILE,
FILENAME='D:\DATA2\FG1_FILE.NDF',
SIZE=1,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
TO FILEGROUP FILE_GROUP_1
--第二个文件组
ALTER DATABASE DEMO
ADD FILE
(NAME=FG2_FILE,
FILENAME='D:\DATA2\FG2_FILE.NDF',
SIZE=1,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
TO FILEGROUP FILE_GROUP_2
--第三个文件组
ALTER DATABASE DEMO
ADD FILE
(NAME=FG3_FILE,
FILENAME='D:\DATA2\FG3_FILE.NDF',
SIZE=1,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
TO FILEGROUP FILE_GROUP_3

第二步:定义分区函数,定义如何根据某些列的值将表或索引的行映射到指定分区。分区函数制定了分区的方式。

USE DEMO
CREATE PARTITION FUNCTION pf_OrderDate (datetime)   
AS RANGE RIGHT   
FOR VALUES ('2006/01/01', '2007/01/01') 
GO

注解:datetime是分区依据字段的数据类型,RIGTH是第一个分区小于边界,第二个分区大于等于边界,依次类推, VALUES是各个边界

FILE_GROUP_1    1        (过去某年, 2006/01/01)
FILE_GROUP_2    2        [2006/01/01, 2007/01/01)
FILE_GROUP_3    3        [2007/01/01,未来某年)

第三步:定义分区方案,负责分配分区函数中设定的每个分区属于哪个文件组

USE DEMO
CREATE PARTITION SCHEME ps_OrderDate 
AS PARTITION pf_OrderDate TO (FILE_GROUP_1,FILE_GROUP_2,FILE_GROUP_3);
GO

第四步:创建分区表并将其绑定到分区方案上,表在创建的时候就已经决定是否是分区表了。

USE DEMO
CREATE TABLE ORDERS
(
	ORDER_ID INT,
	ORDER_DATE DATETIME NOT NULL,
	CUSTOMER_ID INT NOT NULL
)
ON ps_OrderDate(ORDER_DATE)

USE DEMO
CREATE TABLE ORDERS_HISTRORY
(
	ORDER_ID INT,
	ORDER_DATE DATETIME NOT NULL,
	CUSTOMER_ID INT NOT NULL
)
ON ps_OrderDate(ORDER_DATE)

第五步:按分区进行查询数据

USE DEMO
SELECT * FROM ORDERS
WHERE $PARTITION.pf_OrderDate (ORDER_DATE)=3;

注解:$PARITITION.pf_OrderDate (ORDER_DATE)=3 表示查询第三个分区


第六步:分区表中的数据按区进行备份(归档)

扫描二维码关注公众号,回复: 648984 查看本文章
USE DEMO
go
alter table orders switch partition 1 to orders_histrory partition 1
go

主要参考文章, 推荐文章:

参考文献1: 深入分析SQL SERVER 2008 分区函数和分区表

参考文献2:SQL SERVER 分区具体例子讲解

参考文献3: SQL SERVER分区分表水平

参考文献4: SQL SERVER磁盘空间告急(扩容)

















猜你喜欢

转载自blog.csdn.net/managementandjava/article/details/79914904