--=========================================== --准備測試數據 USE [DB0001] GO CREATE PARTITION FUNCTION [pf_Test1](bigint) AS RANGE LEFT FOR VALUES (1000, 2000) GO CREATE PARTITION SCHEME [ps_Test1] AS PARTITION [pf_Test1] ALL TO([PRIMARY]) GO CREATE TABLE TB2 ( ID BIGINT IDENTITY(1,1) PRIMARY KEY, C1 NVARCHAR(200) )ON[ps_Test1](ID) GO INSERT INTO TB2(C1) SELECT name FROM sys.all_columns --================================================= --為新創建的分區置頂文件組 ALTER PARTITION SCHEME [ps_Test1] NEXT USED [PRIMARY] GO --================================================= --為新分區指定分區邊界 ALTER PARTITION FUNCTION [pf_Test1]() SPLIT RANGE(1500) GO --================================================ --合並指定邊界的分區 ALTER PARTITION FUNCTION [pf_Test1]() MERGE RANGE(1500) --========================================================== --查看數據所在的分區 SELECT $PARTITION.[pf_Test1](ID) AS PartitionID, * from dbo.TB2 總結: 可以對已有數據的分區進行拆分,也可以將兩個相鄰的有數據的分區進行合並,但會造成數據移動和IO/CPU消耗 對分區進行拆分或合並時,需要獲取所有使用該分區函數上表和索引的架構修改鎖,因此分區拆分和合並會鎖表 對分區進行合並時,SQL Server會自動移除分區方案上對應的文件組,向相鄰的分區合並 對分區進行拆分前,需要修改分區方案指定新分區使用的文件組