繁体   English   中英

INSERT INTO table SELECT Redshift 超慢

[英]INSERT INTO table SELECT Redshift super slow

我们有一张大桌子,我们需要对其进行深度复制。 由于我们没有足够的空磁盘空间来在一个语句中创建它,因此我尝试批量创建它。 但是批次似乎运行得非常非常缓慢。

我正在运行这样的东西:

   INSERT INTO new_table 
   SELECT * FROM old_table 
    WHERE creation_date between '2018-01-01' AND '2018-02-01'

即使查询返回少量行 ~ 1K

SELECT * FROM old_table 
WHERE creation_date between '2018-01-01' AND '2018-02-01'
  • INSERT查询大约需要 50 分钟才能完成。

  • old_table有 ~286M 行和 ~400 列

  • creation_dateSORTKEY之一

解释计划看起来像:

XN Seq Scan on old_table  (cost=0.00..4543811.52 rows=178152 width=136883)
      Filter: ((creation_date <= '2018-02-01'::date) AND (creation_date >= '2018 01-01'::date))

我的问题是:

  • INSERT查询花费这么长时间的原因可能是什么?

在我看来,以下是两种可能性——不过,如果您能在问题中添加更多细节,那就太好了。

  1. 正如@John 在评论中所说,您的 SORTKEY 在 RedShift 中很重要,是creation_date排序键?
  2. 您是否对old_table进行了大量更新,如果是这样,您必须先真空执行VACUUM DELETE Only old_table然后,执行选择查询。

其他选项,您可能正在使用 S3 方式,但不确定您是否想要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM