【发布时间】:2021-03-16 17:51:08
【问题描述】:
在 SQL Server 中有几个表用于跟踪和控制分区表。其中两个似乎具有相同含义和值但名称不同的列。
sys.partitions.partition_number 有一个列 partition_number。
sys.partition_range_values有一列boundary_id
对于给定的分区方案,这些似乎是相同的值。 FWIW,分区号也由特殊函数$PARTITION返回,如
$PARTITION.<partition function>(value)
这似乎也对应于sys.partition_range_values 表中包含匹配值的行中的boundary_id 列。
来自 Microsoft 文章的 FWIW:
boundary_id int 边界值元组的 ID(从 1 开始的序数),最左边的边界从 ID 1 开始。
partition_number int 是拥有索引或堆中从 1 开始的分区号。对于非分区表和索引,该列的值为 1。
任何人都可以确认这些表的这两列对于给定的分区函数和方案确实具有相同的值吗?
我想要一份我的搜索技能似乎无法找到的官方参考资料。
【问题讨论】:
-
@Larnu 是的,确实!因此问题。两篇文章都没有引用另一篇文章,描述也不同。