Partition--分區拆分和分區合並


--===========================================
--准備測試數據
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會自動移除分區方案上對應的文件組,向相鄰的分區合並
對分區進行拆分前,需要修改分區方案指定新分區使用的文件組

 


免責聲明!

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



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