分区边界 ID(例如在 sys.partition_range_values 中)是不是保证按分区范围排序?
Posted
技术标签:
【中文标题】分区边界 ID(例如在 sys.partition_range_values 中)是不是保证按分区范围排序?【英文标题】:Are Partition Boundaries IDs (in sys.partition_range_values eg.) guaranteed to be ordered by partition range?分区边界 ID(例如在 sys.partition_range_values 中)是否保证按分区范围排序? 【发布时间】:2021-05-04 16:24:18 【问题描述】:假设您有一个分区函数,并且您正在使用ALTER PARTITION SPLIT RANGE
和ALTER PARTITION MERGE RANGE
为该函数动态添加和删除范围边界。
您可以询问sys.partition_range_values
以确定当前范围边界是什么。
看来,无论您在其中创建、拆分和合并范围,sys.partition_range_values
表将始终显示边界 ID(以及等效的分区 ID,在其他 sys
表中)按升序排列边界值。
这真的有保证吗?
我可以确定boundary_id 1 永远是分区函数的最左边界吗?
【问题讨论】:
【参考方案1】:我可以确定boundary_id 1 永远是最左边的吗 分区函数的边界?
是的。这是在sys.partition_range_values documentation 中特别指出的:
边界值元组的 ID(从 1 开始的序数),最左边 边界从 ID 1 开始。
我对“从 ID 为 1 开始的最左侧边界”的解释是边界值是有序的。 CREATE PARTITION FUNCTION
doc 还提到了边界值排序:
如果值不按顺序排列,数据库引擎会对它们进行排序, 创建函数,并返回值不正确的警告 按顺序提供。如果 n 包含,数据库引擎将返回错误 任何重复值
【讨论】:
完美答案!清晰,切中要害,引用:D以上是关于分区边界 ID(例如在 sys.partition_range_values 中)是不是保证按分区范围排序?的主要内容,如果未能解决你的问题,请参考以下文章