2008-10-10 69 views

回答

2

MSSQL允許非確定性的功能分區功能:

CREATE PARTITION FUNCTION MyArchive(datetime) 
AS RANGE LEFT FOR VALUES (GETDATE() – 10) 
GO 

這是否意味着舊的然後10天記錄會自動移動到存檔(第一個)分區?當然不是。

數據庫存儲分區模式設置的日期並以最多(邏輯)的方式使用它。 可以說,在2000-01-11上設置了上面的模式,這使得分隔日期2000-01-01。 當您查詢日期低於初始分隔日期(boundary_value - 2000-01-01)的數據時,您將只使用歸檔分區。 當您查詢日期高於當天的數據減去10天(GETDATE() - 10)時,您將只使用當前分區。 所有其他查詢都將使用這兩個分區,即查詢日期低於當前日期減去10天但高於分隔日期(2000-01-01)的數據。

這意味着隨着時間的推移,使用這兩個分區的日期範圍越來越大。而且,如果確定性地將分區設置爲分隔日期,則會更好。

我不希望任何情況下,這是有用的。