--
--19.4.2节示例
--
创建文件组和其中的文件
CREATE DATABASE [PartitionTest] ON PRIMARY
( NAME = N'PrimaryFile', FILENAME = N'C:\DATA\PrimaryFile.mdf' ),
FILEGROUP [FG1]
( NAME = N'File1', FILENAME = N'C:\DATA\File1.ndf' ),
( NAME = N'File2', FILENAME = N'C:\DATA\File2.ndf' ),
( NAME = N'File3', FILENAME = N'C:\DATA\File3.ndf' )
LOG ON
( NAME = N'PartitionTest_log', FILENAME = N'C:\DATA\PartitionTest_log.ldf')
创建指定文件组的表
CREATE TABLE tb1
(
ID INT IDENTITY PRIMARY KEY ,
NAME NVARCHAR(10) NOT NULL
)
ON FG1 --指定文件组
修改数据库添加文件组和文件
USE [master]
GO
ALTER DATABASE [PartitionTest] ADD FILEGROUP [FG2]
GO
ALTER DATABASE [PartitionTest]
ADD FILE ( NAME = N'File21', FILENAME = N'C:\DATA\File21.ndf') TO FILEGROUP [FG2]
GO
ALTER DATABASE [PartitionTest]
ADD FILE ( NAME = N'File22', FILENAME = N'C:\DATA\File22.ndf') TO FILEGROUP [FG2]
GO
ALTER DATABASE [PartitionTest]
ADD FILE ( NAME = N'File23', FILENAME = N'C:\DATA\File23.ndf') TO FILEGROUP [FG2]
GO
--
--19.4.3节示例
--
创建int数据类型的分区函数
USE PartitionTest
GO
CREATE PARTITION FUNCTION IntRangePF(int)
AS RANGE LEFT
FOR VALUES (10, 100, 1000)
创建datetime数据类型的分区函数
USE PartitionTest
GO
CREATE PARTITION FUNCTION DateRangePF (DATETIME) --以时间分区的分区函数
AS RANGE LEFT
FOR VALUES ('2007-1-1','2008-1-1')
修改分区函数
USE PartitionTest
GO
ALTER PARTITION FUNCTION IntRangePF() --修改分区函数IntRangePF
MERGE RANGE(100) --合并一个分区段
DROP PARTITION FUNCTION IntRangePF
--
--19.4.4节示例
--
创建分区方案
USE PartitionTest
GO
CREATE PARTITION SCHEME DateRangePS --创建分区方案
AS PARTITION DateRangePF --分区函数和对应的文件组
TO ([PRIMARY],FG1, FG2);
--
--19.4.5节示例
--
创建分区表
CREATE TABLE Orders
(
ID INT IDENTITY,
CreateTime DATETIME,
Code VARCHAR(10),
TotalMoney MONEY
)
ON DateRangePS(CreateTime) --分区表,以CreateTime字段进行分区
为分区表插入数据并查询分区
INSERT INTO Orders
VALUES ('2008-8-1','2008000001',100 )
INSERT INTO Orders
VALUES ('2007-3-1','2007000001',1100 )
INSERT INTO Orders
VALUES ('2006-8-11','2006000001',1010 )
INSERT INTO Orders
VALUES ('2007-12-31','2007000011',2100 )
--接下来查询结果
SELECT Code, $PARTITION.[DateRangePF](CreateTime)
FROM Orders
ORDER BY Code
--
--19.4.6节示例
--
创建独立于基本的分区索引
ALTER DATABASE [PartitionTest] ADD FILEGROUP [FGIndex] --创建文件组FGIndex
GO
ALTER DATABASE [PartitionTest] --添加文件到文件组
ADD FILE ( NAME = N'FileIndex', FILENAME = N'C:\DATA\File_Index.ndf')
TO FILEGROUP [FGIndex]
GO
CREATE UNIQUE NONCLUSTERED INDEX CIX_Orders_Code --创建非聚集索引
ON Orders(Code)
ON FGIndex --指定分区索引在该FGIndex文件组中
创建与基表对齐的分区索引
CREATE UNIQUE NONCLUSTERED INDEX CIX_Orders_ID ON dbo.Orders
(
ID ASC,
CreateTime ASC
)
ON DateRangePS(CreateTime) --使用分区函数创建分区索引