Sql-Server
表分區功能空分區
我計劃每月沿日期列對我的表進行分區,並在幾個地方閱讀過,建議(實際上是最佳實踐)在範圍的兩個“末端”都保留空分區。 https://techcommunity.microsoft.com/t5/premier-field-engineering/oops-i-forgot-to-leave-an-empty-sql-table-partition-how-can-i/ba-p/370563
作為一種天真的方法,我會像這樣創建我的分區函式:
CREATE PARTITION FUNCTION MyPf(DATE) AS RANGE RIGHT FOR VALUES ( '1900-01-01', '2019-10-01','2019-11-01',...,...,...,'2022-08-01', '9999-12-31'); CREATE PARTITION SCHEME MyPs AS PARTITION MyPf ALL TO (MySingleFileGroup)
我可以保證不會將早於2019-10-01的數據插入到表中,並且我計劃在到達2022-08-01後保留 SPLIT 分區,並一直這樣做直到9999-12-31。我還計劃定期截斷舊分區並合併舊分區範圍。
我是否錯過了有關此設置的最佳實踐的任何明顯內容?我唯一的目標是能夠在不移動數據的情況下進行拆分和合併。
謝謝!
我可以保證不會向表中插入任何早於 2019-10-01 的數據,並且我計劃在到達 2022-08-01 時保留 SPLIT 分區
只要沒有現有數據符合新分區邊界範圍的條件,就不需要為
SPLIT
.我還計劃定期截斷舊分區並合併舊分區範圍。
同樣,由於前面的原因,合併的分區將是空的,
TRUNCATE
因此不需要移動任何行來容納新的邊界。