標籤:clust 運行 com inf 分區表 ignore microsoft 獲得 優勢
一.分區發展曆程
基於表的資料分割函數為簡化分區表的建立和維護過程提供了靈活性和更好的效能。追溯到邏輯分區表和手動分區表的功能.
二.為什麼要進行分區
為了改善大型表以及具有各種訪問模式的表的延展性和可管理性。
大型表除了大小以數百 GB 計算,甚至以 TB 計算的指標外,還可以是無法按照預期方式啟動並執行資料表,運行成本或維護成本超出預定要求。例如發生效能問題、阻塞問題、備份。
三.建立分區實現
在test庫 添加四個檔案組
1 --第一步:建立四個檔案組 2 alter database test add filegroup ByIdGroup13 alter database test add filegroup ByIdGroup24 alter database test add filegroup ByIdGroup35 alter database test add filegroup ByIdGroup4
--第二步: 建立四個ndf檔案,對應到各檔案組中,FILENAME檔案儲存體路徑ALTER DATABASE test ADD FILE(NAME=‘File1‘,FILENAME=‘C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\testFile1.ndf‘,SIZE=5MB,FILEGROWTH=5MB)TO FILEGROUP ByIdGroup1ALTER DATABASE test ADD FILE(NAME=‘File2‘,FILENAME=‘E:\testFile2.ndf‘,SIZE=5MB,FILEGROWTH=5MB)TO FILEGROUP ByIdGroup2ALTER DATABASE test ADD FILE(NAME=‘File3‘,FILENAME=‘E:\testFile3.ndf‘,SIZE=5MB,FILEGROWTH=5MB)TO FILEGROUP ByIdGroup3ALTER DATABASE test ADD FILE(NAME=‘File4‘,FILENAME=‘E:\testFile4.ndf‘,SIZE=5MB,FILEGROWTH=5MB)TO FILEGROUP ByIdGroup4
執行完成後,查看如所示:
--第三步:建立分區函數(每個分區的邊界值)CREATE PARTITION FUNCTION pf_UpByMemberID(int) AS RANGE LEFT FOR VALUES (N‘9707‘,N‘9708‘,N‘9709‘,N‘10600‘)
執行完後如所示:
--第四步:建立資料分割配置CREATE PARTITION SCHEME ps_UpByMemberIDAS PARTITION pf_UpByMemberID TO ([PRIMARY], [ByIdGroup1],[ByIdGroup2],[ByIdGroup3],[ByIdGroup4])
執行完後如所示:
--第五步:建立分區表
右擊要分區的表-->儲存-->建立分區-->選擇分區列(這裡UpByMemberID)-->選擇分區函數-->資料分割配置
--第六步建立分區索引/*create <索引分類> index <索引名稱> on <表名>(列名)on <資料分割配置名>(分割資料行名)*/CREATE NONCLUSTERED INDEX ixUpByMemberID ON [dbo].PUB_StockTestbak ( [UpByMemberID])WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [ps_UpByMemberID]([UpByMemberID])
sql server 分區的優勢:
- 當表和索引變得非常大時,分區可以將資料分為更小、更容易管理的部分。
- 減少索引維護時間。
- 常用的where條件欄位做分區依據是較佳的。
- 並行操作獲得更好的效能, 可以改善在極大型資料集(例如數百萬行)中執行大規模操作的效能。
- 一般情況下,檔案組數最好與分區數相同。檔案組允許您將各個表放置到不同的物理磁碟上
sql server 分區