雪花Sproc与独立SQL

时间:2019-12-02 22:26:20

标签: stored-procedures query-performance snowflake-data-warehouse denormalization

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

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

例如:sproc包含多个SQL之类

  1. 合并denormalized_data(选择businesslogic1)
  2. 合并denormalized_data(选择businesslogic2)
    等等

将业务逻辑包含在庞大的SQL中还是对其进行划分,以便每个查询处理更少的行数,是更好的选择吗?

如果我使用sproc,会产生开销吗?

1 个答案:

答案 0 :(得分:1)

说得很一般。雪花已经过优化,可以大批量工作。例如,我遇到的情况是,插入1条记录和100,000条记录所需的时间差不多。因此,插入1条记录100,000次会慢很多。

肯定会有一些限制。 1TB的批次应拆分。而且您的里程可能会因方式/时间/等而异。您正在更新表格。一般来说,您会发现批次的性能更高。

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