即使添加检查约束后,附加分区也需要更多时间

问题描述

所以基本上我们在 Postgres 11 DB 中有一个非常大的表,自从添加该表以来,它有数亿条数据。现在我们正在尝试将其转换为基于 created_at 列(时间戳 - 不可为空)的基于范围的分区表。

正如 Postgres Partitioning Documentation 中所建议的,在实际运行附加分区之前,我尝试在同一个表上添加检查约束。所以在那之后,如果我运行附加分区,理想情况下它应该花费更少的时间,因为它应该由于表上存在各自的约束而跳过验证,但我看到它仍然需要更多的时间。我的分区范围和约束看起来像这样:

alter table xyz_2020 add constraint temp_check check (created_at >= '2020-01-01 00:00:00' and created_at < '2021-01-01 00:00:00');
ALTER TABLE xyz ATTACH PARTITION xyz_2020 FOR VALUES FROM ('2020-01-01 00:00:00') TO ('2021-01-01 00:00:00');

这里的 xyz_2020 是我现有的大表,它从 xyz 重命名。而 xyz 是像旧表一样创建的新主表。所以我想了解附加分区可能仍然需要更多时间的可能原因是什么。

编辑:我们正在创建一个新的分区表并尝试将旧表作为其分区之一附加。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...