Sql-Server

表分區功能空分區

  • February 6, 2020

我計劃每月沿日期列對我的表進行分區,並在幾個地方閱讀過,建議(實際上是最佳實踐)在範圍的兩個“末端”都保留空分區。 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因此不需要移動任何行來容納新的邊界。

引用自:https://dba.stackexchange.com/questions/259029