SQL Server 創建表分區


先准備測試表

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

而分區框架有依賴於分區函數,即分區表依賴分區框架,分區框架又依賴於分區函數

查看表分區結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM