INSERT INTO表SELECT Redshift超慢

时间:2018-05-27 06:57:18

标签: amazon-web-services amazon-redshift

我们有一张大桌子,我们需要对它进行深度复制。 由于我们没有足够的空磁盘空间来在一个语句中使用它,我试图批量生成它。 但批次似乎运行得非常慢。

我正在运行这样的事情:

   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 s

  • 之一

解释计划如下:

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 个答案:

答案 0 :(得分:2)

在我看来,以下是两种可能性 - 但如果你能在你的问题中添加更多细节就会很棒。

  1. 正如@John在评论中所说,你的SORTKEY在RedShift中很重要,是creation_date sortkey吗?
  2. 您是否对old_table进行了大量更新,如果是,您必须先清空VACUUM DELETE Only old_table,然后选择查询。
  3. 其他选择,您可能是S3方式,但不确定是否要这样做。