先准備測試表
CREATE TABLE [dbo].[Employee] ( EmployeeNo INT IDENTITY(1,1) PRIMARY KEY, EmployeeName NVARCHAR(50) NULL );
插入一些數據
INSERT Employee DEFAULT VALUES; GO 10000 UPDATE Employee set EmployeeName = 'Employee ' + CONVERT(VARCHAR, EmployeeNo)
創建文件組
創建文件(為了性能,可以設定文件Path分布在不同的磁盤分區上)
創建分區准備
選擇分區列
創建分區函數
創建分區框架
定義邊界值,分區,因為有5個邊界值,所以需6個分區
產生的腳本文件(換句話說上面的步驟等同於下面的語句)
USE [TestingDB] GO BEGIN TRANSACTION CREATE PARTITION FUNCTION [EmpFunction](int) AS RANGE RIGHT FOR VALUES (N'2000', N'4000', N'6000', N'8000', N'10000') CREATE PARTITION SCHEME [FunScheme] AS PARTITION [EmpFunction] TO ([FileGroup1], [FileGroup2], [FileGroup3], [FileGroup4], [FileGroup5], [PRIMARY]) ALTER TABLE [dbo].[Employee] DROP CONSTRAINT [PK__Employee__7AD0F1B633D4B598] ALTER TABLE [dbo].[Employee] ADD PRIMARY KEY CLUSTERED ( [EmployeeNo] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [FunScheme]([EmployeeNo]) COMMIT TRANSACTION
執行上面的SQL語句
其中語句ON [FunScheme]([EmployeeNo])是關鍵,表明了表Employee依賴分區框架FunScheme來進行分區,分區的列為EmployeeNo
而分區框架有依賴於分區函數,即分區表依賴分區框架,分區框架又依賴於分區函數
查看表分區結果