sql分区函数中的非确定性函数

sql分区函数中的非确定性函数,sql,database-partitioning,Sql,Database Partitioning,SQL分区函数中如何使用非确定性函数?它们是否有用?MsSql允许分区函数中使用非确定性函数: CREATE PARTITION FUNCTION MyArchive(datetime) AS RANGE LEFT FOR VALUES (GETDATE() – 10) GO 这是否意味着超过10天的记录会自动移动到存档(第一个)分区?当然不是 数据库存储分区模式设置的日期,并以最符合逻辑的方式使用它。 假设将上述模式设置为2000-01-11,从而使定界日期为2000-01-01。 当您查询

SQL分区函数中如何使用非确定性函数?它们是否有用?

MsSql允许分区函数中使用非确定性函数:

CREATE PARTITION FUNCTION MyArchive(datetime)
AS RANGE LEFT FOR VALUES (GETDATE() – 10)
GO
这是否意味着超过10天的记录会自动移动到存档(第一个)分区?当然不是

数据库存储分区模式设置的日期,并以最符合逻辑的方式使用它。 假设将上述模式设置为2000-01-11,从而使定界日期为2000-01-01。 当您查询日期低于初始定界日期(边界值-2000-01-01)的数据时,您将只使用归档分区。 当查询日期高于当前日期减去10天(GETDATE()–10)的数据时,您将只使用当前分区。 所有其他查询将使用两个分区,即查询日期低于当前日期减去10天但高于定界日期(2000-01-01)的数据

这意味着,随着时间的推移,两个分区的使用日期范围都在增加。您最好将分区设置为确定的定界日期


我看不到任何这样有用的场景。

MsSql允许分区函数中使用非确定性函数:

CREATE PARTITION FUNCTION MyArchive(datetime)
AS RANGE LEFT FOR VALUES (GETDATE() – 10)
GO
这是否意味着超过10天的记录会自动移动到存档(第一个)分区?当然不是

数据库存储分区模式设置的日期,并以最符合逻辑的方式使用它。 假设将上述模式设置为2000-01-11,从而使定界日期为2000-01-01。 当您查询日期低于初始定界日期(边界值-2000-01-01)的数据时,您将只使用归档分区。 当查询日期高于当前日期减去10天(GETDATE()–10)的数据时,您将只使用当前分区。 所有其他查询将使用两个分区,即查询日期低于当前日期减去10天但高于定界日期(2000-01-01)的数据

这意味着,随着时间的推移,两个分区的使用日期范围都在增加。您最好将分区设置为确定的定界日期

我不认为这有什么用处