雪花存储过程与独立存储过程 sql

snowflake sproc vs standalone sql

我正在考虑为我们的 BI 目的创建非规范化 table。

从多个 table 创建业务逻辑时,我注意到当非规范化 table 批量更新(具有多个业务逻辑 SQL 的存储过程)和合并语句时查询性能更好下面。

例如:sproc 包含多个SQL's like

  1. 合并 denormalized_data (select businesslogic1)
  2. 合并 denormalized_data (select businesslogic2)
    等等

是将业务逻辑包含在巨大的 SQL 中还是将其拆分以便每个查询处理更少的行数更好?

如果我使用 sproc 会有任何开销吗?

说的很笼统。 Snowflake 针对大批量工作进行了优化。例如,我遇到过插入 1 条记录所需时间与 100,000 条记录一样长的情况。所以插入 1 条记录 100,000 次会慢很多。

肯定会有一些限制。应该拆分 1TB 的批次。您的里程数可能会因 how/when/etc 而异。您正在更新 table。不过一般来说,您会发现批处理的性能更高。

据我所知,过程的唯一实际开销与将数据类型从 SQL 转换为 Javascript 并再次转换回来有关,然后是您必须如何管理输出。在大多数情况下,这不会很重要。