如何在SQL分区函数中使用非确定性函数并且它们有用吗?
答案 0 :(得分:3)
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)的数据。
这意味着每过一天,使用两个分区的日期范围都在增长。而且你最好确定性地将分区设置为分隔日期。
我并不认为任何有用的情况。