gpt4 book ai didi

postgresql - 简单的更新查询花费的时间太长 - Postgres

转载 作者:行者123 更新时间:2023-11-29 14:08:40 25 4
gpt4 key购买 nike

我有一个包含 2800 万行的表,我想更新它。它有大约 60 列和一个 ID 列(主键),并在其上创建了索引。我创建了四个新列,我想用来自其他表的四列的数据填充它们,该表也有一个 ID 列,并在其上创建了索引。两个表都具有相同数量的行,并且只有主键和 IDENTI 列上的索引。该查询已经运行了 15 个小时,由于它是高优先级工作,我们开始对此感到紧张,我们没有太多时间来试验查询。我们从来没有更新过这么大的表(7 GB),所以我们不确定这段时间是否正常。

这是查询:

UPDATE consolidated
SET IDEDUP2=uni.IDEDUP2
USE21=uni.USE21
USE22=uni.USE22
PESOXX2=uni.PESOXX2
FROM uni_group uni, consolidated con
WHERE con.IDENTI=uni.IDENTI

如何让它更快?是否可以?如果没有,有没有办法检查它需要多长时间(不终止进程)?

正如附加信息一样,我们之前对 300 万行表 (postgis) 运行了更复杂的查询,并且也花费了大约 15 个小时。

最佳答案

您应该在 FROM 子句中重复目标表。您的语句创建了 consolidated 表与其自身的笛卡尔连接,这不是您想要的。

您应该使用以下内容:

UPDATE consolidated con
SET IDEDUP2=uni.IDEDUP2
USE21=uni.USE21
USE22=uni.USE22
PESOXX2=uni.PESOXX2
FROM uni_group uni
WHERE con.IDENTI = uni.IDENTI

关于postgresql - 简单的更新查询花费的时间太长 - Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53534215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com