在 SQL 服务器中,sys.partitions.partition_number = sys.partition_range_values.boundary_id 是否用于相同的 table 和分区?
IN SQL Server, is the sys.partitions.partition_number = sys.partition_range_values.boundary_id for the same table and partition?
SQL服务器中有多个table用于跟踪和控制分区的table。其中两个似乎具有相同含义和值但名称不同的列。
sys.partitions.partition_number
有一个列 partition_number
。
sys.partition_range_values
有一列 boundary_id
对于给定的分区方案,这些值似乎相同。 FWIW,分区号也由特殊函数 $PARTITION
返回,如
$PARTITION.<partition function>(value)
这似乎也对应于包含匹配值的 sys.partition_range_values
table 行中的 boundary_id
列。
来自 Microsoft 文章的 FWIW:
boundary_id int ID (1-based ordinal) of the boundary value tuple, with left-most boundary starting at an ID of 1.
partition_number int Is a 1-based partition number within the owning index or heap. For non-partitioned tables and indexes, the value of this column is 1.
任何人都可以确认这些 table 的两列对于给定的分区函数和方案确实具有相同的值吗?
我想要一个我的搜索技能似乎无法找到的官方参考。
不,不是。
sys.partition_range_values
在 function_id
列上外键到 sys.partition_functions
,这在数据库中是唯一的。
您可以通过 sys.partition_schemes
将它与 table 连接起来,它有一个 function_id
列。这还有一个 data_space_id
列,它通过 sys.destination_data_spaces
.
与 sys.data_spaces
进行多对多映射
据我所知,destination_data_spaces.destination_id
与 sys.partitions.partition_number
相同。
复杂,但如果您使用过分区函数和方案,您将看到它如何映射到它们的使用方式。
SQL服务器中有多个table用于跟踪和控制分区的table。其中两个似乎具有相同含义和值但名称不同的列。
sys.partitions.partition_number
有一个列 partition_number
。
sys.partition_range_values
有一列 boundary_id
对于给定的分区方案,这些值似乎相同。 FWIW,分区号也由特殊函数 $PARTITION
返回,如
$PARTITION.<partition function>(value)
这似乎也对应于包含匹配值的 sys.partition_range_values
table 行中的 boundary_id
列。
来自 Microsoft 文章的 FWIW:
boundary_id int ID (1-based ordinal) of the boundary value tuple, with left-most boundary starting at an ID of 1.
partition_number int Is a 1-based partition number within the owning index or heap. For non-partitioned tables and indexes, the value of this column is 1.
任何人都可以确认这些 table 的两列对于给定的分区函数和方案确实具有相同的值吗?
我想要一个我的搜索技能似乎无法找到的官方参考。
不,不是。
sys.partition_range_values
在function_id
列上外键到sys.partition_functions
,这在数据库中是唯一的。您可以通过
与sys.partition_schemes
将它与 table 连接起来,它有一个function_id
列。这还有一个data_space_id
列,它通过sys.destination_data_spaces
.sys.data_spaces
进行多对多映射据我所知,
destination_data_spaces.destination_id
与sys.partitions.partition_number
相同。
复杂,但如果您使用过分区函数和方案,您将看到它如何映射到它们的使用方式。