我有一个包含多个 ctes 的雪花查询,并使用 Talend 作业插入表中。执行查询需要超过 90 分钟。它是多个级联的ctes,一个调用另一个,另一个调用另一个。
\n\n我想提高查询的性能。大概有1000行代码,我无法将其粘贴到这里。当我检查配置文件时,它显示了所有窗口函数和聚合函数,这会减慢查询速度。
\n\n例如,顶部较慢的是,
\n\nROW_NUMBER\xe2\x80\x8b(\xe2\x80\x8b\xe2\x80\x8b)\xe2\x80\x8b OVER \xe2\x80\x8b(\xe2\x80\x8bPARTITION BY LOWER\xe2\x80\x8b(\xe2\x80\x8bS\xe2\x80\x8b.\xe2\x80\x8bSUBSCRIPTIONID\xe2\x80\x8b)\xe2\x80\x8b \n ORDER BY S\xe2\x80\x8b.\xe2\x80\x8bISROWCURRENT DESC NULLS FIRST, \n TO_NUMBER\xe2\x80\x8b(\xe2\x80\x8bS\xe2\x80\x8b.\xe2\x80\x8bSTARTDATE\xe2\x80\x8b)\xe2\x80\x8b DESC NULLS FIRST, \n IFF\xe2\x80\x8b(\xe2\x80\x8bS\xe2\x80\x8b.\xe2\x80\x8bENDDATE IS NULL, '29991231', S\xe2\x80\x8b.\xe2\x80\x8bENDDATE\xe2\x80\x8b)\xe2\x80\x8b DESC NULLS FIRST\xe2\x80\x8b)\xe2\x80\x8b \nRun Code Online (Sandbox Code Playgroud)\n\n占用 7.3% 的时间。您能建议一种替代方法来提高查询性能吗?
\n