簡體   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