【发布时间】:2020-09-02 00:20:39
【问题描述】:
除了编码偏好之外,是否有任何理由在 Snowflake 中使用一系列 WITH(SELECT . . . ) 语句/子句而不是创建多个临时表。是否存在性能或其他问题会导致人们偏爱一种方法而不是另一种?
【问题讨论】:
-
一旦数据在仓库中被处理,你的性能会显着提高,因此将数据写回存储然后为每个临时表读取它可能会影响你的性能,尽管其中一些很可能会被仓库缓存抵消。因此,这可能取决于您正在做的事情的复杂性。您是否进行了测试和比较?
-
我想补充一点,有了 WITH,您可以告知查询引擎您正在做什么,因此可以对其进行优化。而当您越过语句边界时,引擎更难进行优化。简而言之,绝大多数性能优化都是在单个语句中完成的。
标签: snowflake-cloud-data-platform with-statement