[英]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_date
是SORTKEY
之一
解释计划看起来像:
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
查询花费这么长时间的原因可能是什么?在我看来,以下是两种可能性——不过,如果您能在问题中添加更多细节,那就太好了。
creation_date
排序键?old_table
进行了大量更新,如果是这样,您必须先真空执行VACUUM DELETE Only old_table
然后,执行选择查询。其他选项,您可能正在使用 S3 方式,但不确定您是否想要这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.