gpt4 book ai didi

sql-update - Redshift UPDATE太慢了

转载 作者:行者123 更新时间:2023-12-04 13:38:57 24 4
gpt4 key购买 nike

我在Redshift集群中有一个表,其中有约10亿行。我有一份工作试图基于某些过滤器更新某些列值。更新此表中的所有内容的速度都非常慢。这是一个例子:

SELECT col1, col2, col3
FROM SOMETABLE
WHERE col1 = 'a value of col1'
AND col2 = 12;

上面的查询不到一秒钟就返回了,因为我对 col1col2有排序键。只有一行满足此条件,因此结果集仅为一行。但是,如果我运行:
UPDATE SOMETABLE
SET col3 = 20
WHERE col1 = 'a value of col1'
AND col2 = 12;

该查询花费的时间未知(我在20分钟后停止了查询)。同样,它应该更新一行的一列值。

我也尝试按照这里的文档进行操作: http://docs.aws.amazon.com/redshift/latest/dg/merge-specify-a-column-list.html,它讨论了创建临时登台表以更新主表,但是得到了相同的结果。

知道这里发生了什么吗?

最佳答案

您没有提到要更新的表的百分比,但是要注意,Redshift中的UPDATE是一个两步过程:

  • 必须首先将要更改的每一行标记为删除
  • 然后必须为表
  • 中的每一列写入新的数据版本

    如果您有大量的列和/或要更新大量的行,则此过程对于数据库而言可能是非常费力的。

    您可以尝试使用CREATE TABLE AS语句创建表的新“更新”版本,然后删除现有表并重命名新表。这样做还有一个好处,就是让您拥有一个完全排序的表。

    关于sql-update - Redshift UPDATE太慢了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25751363/

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