2

我有一个带有多个 ctes 的雪花查询,并使用 Talend 作业插入到表中。执行查询需要 90 多分钟。它是多个级联的 ctes,一个调用另一个,另一个调用另一个。

我想提高查询的性能。这就像1000行代码,我不能在这里粘贴。当我检查配置文件时,它显示了所有减慢查询的窗口函数和聚合函数。

例如,最慢的是,

ROW_NUMBER​(​​)​ OVER ​(​PARTITION BY LOWER​(​S​.​SUBSCRIPTIONID​)​ 
                   ORDER BY S​.​ISROWCURRENT DESC NULLS FIRST, 
                      TO_NUMBER​(​S​.​STARTDATE​)​ DESC NULLS FIRST, 
                      IFF​(​S​.​ENDDATE IS NULL, '29991231', S​.​ENDDATE​)​ DESC NULLS FIRST​)​ 

需要 7.3% 的时间。您能否提出一种提高查询性能的替代方法?

4

1 回答 1

3
于 2020-02-06T22:18:37.367 回答