小编Bob*_*orn的帖子

为什么新插入的行会出现在 SQL Server 分区表的两个文件组中?

我按年份对现有表进行了分区。为 2020 年的某个日期插入新记录后,新记录将显示为 2020 年分区主文件组的一部分。我很难确定这是否应该发生,或者我是否配置错误。

这是插入记录后分区的样子。在插入记录之前,此查询在主文件组中显示了 3 条记录,在 2021 组中显示了 3 条记录。

在此处输入图片说明

我期待 2020 分区中有一个新行,并且主文件组中的行数保持在 3,但也许这些是错误的期望。

主文件组是否总是显示分区的总数,或者行应该只显示在它们所属的分区中?

我可以展示我如何设置这一切,我很乐意,但这个问题更多的是关于结果应该是什么样子。我不希望多个分区中的同一行。

编辑

我刚刚找到了这个链接。这表明插入数据,其中新行的结果只有在正确的分区出现,而不是处于初级。所以看起来我做错了什么。

https://www.sqlshack.com/how-to-automate-table-partitioning-in-sql-server/

编辑 2

主要有所有 4 行的原因可能是它的上边界为空。由于主要已经存在于表中,因此从未修改过。也许我需要修改它?

编辑 3

有趣的是,此链接还显示了主分区中的分区总和。

https://www.mssqltips.com/sqlservertip/2888/how-to-partition-an-existing-sql-server-table/

SSMS 为分区生成的脚本

USE [Sandbox]
GO
BEGIN TRANSACTION
CREATE PARTITION FUNCTION [PunchPF1](datetimeoffset(7)) AS RANGE LEFT FOR VALUES (N'2020-01-01T00:00:00-05:00', N'2021-01-01T00:00:00-05:00', N'2022-01-01T00:00:00-05:00')
 
CREATE PARTITION SCHEME [PunchPS1] AS PARTITION [PunchPF1] TO ([Pre2020_Punch], [2020_Punch], [2021_Punch], [2022_Punch])
 
ALTER TABLE [time].[Punch] DROP CONSTRAINT [PK_Punch] WITH ( ONLINE = OFF …
Run Code Online (Sandbox Code Playgroud)

sql-server partitioning sql-server-2017

2
推荐指数
1
解决办法
122
查看次数

标签 统计

partitioning ×1

sql-server ×1

sql-server-2017 ×1