Table Partitioning步驟
- 建立檔案群組
- 新增檔案至群組
- 建立Partition Function(分割範圍)
- 建立 Partition Schema(依檔案群組)
- 建立要分割的資料表
建立檔案群組
在資料庫建立檔案群組,將群組以年度做區分,建立FileGroup_2015~FileGroup_2021。
新增檔案至群組
在每個檔案群組中加入檔案做儲存。
完成後,在物件總管>資料庫點右鍵>選擇屬性,在資料庫屬性的檔案群組中可看到剛剛新增的群組及檔案。
建立Partition Function(分割範圍)
建立Function,依年分切割成2015年~2021年的區間。
RANGE RIGHT: 表示臨界值的資料會是屬於右邊的區塊。
RANGE LEFT: 表示臨界值的資料會是屬於左邊的區塊。
建立 Partition Schema(依檔案群組)
建立Schema,指定存放分割後區塊的資料。
最後一個Primary為預留,當有資料超出切割範圍(2015~2021年),會存放於Primary中。
建立要分割的資料表
建立資料表,並指定欄位「訂單日期(order_date)」依照Partition Schema(ParSch_Year)做分割。
如Table有設定主鍵(Primary Key),則分割欄位也必須是主鍵之一。
查詢系統資料表
查看資料分割至不同區塊的筆數統計。
後記
新增切割範圍
— 指定下個新分割區要使用的檔案群組
ALTER PARTITION SCHEME PartitionSchema名稱 NEXT USED [檔案群組];--建立新的分割區
ALTER PARTITION FUNCTION PartitionFunction名稱 SPLIT RANGE (切割的值);
Example :
ALTER PARTITION SCHEME ParSch_Year NEXT USED [FileGroup_2022];
ALTER PARTITION FUNCTION ParFun_Year SPLIT RANGE ('2022–12–31 00:00:00:.000');
刪除特定分割區資料
TRUNCATE TABLE 資料表名稱 WITH(Partitions(sys.partitions的partition_number欄位))
Example :
TRUNCATE TABLE orderlist WITH(Partitions("1"))
Merge分割區
ALTER PARTITION FUNCTION PartitionFunction名稱 MERGE RANGE (切割的值)
Example :
ALTER PARTITION FUNCTION ParFun_Year MERGE RANGE ('2015–12–31 00:00:00.000')