簡體   English   中英

Redshift SQL 在具有百萬條記錄的表上加入具有日期范圍的日期列

[英]Redshift SQL Join on Date columns with date ranges on tables with million records

給定兩個表 A(有 5000 萬條記錄)和 B(有 6000 條記錄)。

沒有分區。

表 A:SortKey(開始日期、結束日期)

ID 開始日期 結束日期
11 2019-01-01 2019-06-01
66 2020-05-01 2020-07-31
88 2021-03-01 2021-11-31

表 B:排序鍵(rec_date)

記錄日期
2019-02-01
2019-03-01
2020-07-01
2021-05-15

結果表:

ID 開始日期 結束日期 記錄日期
11 2019-01-01 2019-06-01 2019-02-01
11 2019-01-01 2019-06-01 2019-03-01
66 2020-05-01 2020-07-31 2020-07-01
88 2021-03-01 2021-11-31 2021-05-15

當前代碼是-

select a.id, 
       a.start_date, 
       a.end_date, 
       b.rec_date
from tableA a 
     join tableB b
on b.rec_date between a.start_date and a.end_date;

查詢計划: XN 嵌套循環 DS_BCAST_INNER (cost=0.00..5981078476.08 rows=24749818904 width=40) -> XN Seq Scan on TableA a (cost=0.00..649222.88 rows=64922288 width=36) -> XN Seq Scan on TableB b(成本=0.00..34.31 行=3431 寬度=4)

這段代碼需要很長時間才能運行。 尋找任何更好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM