1

我正在试验雪花。我想知道它作为一种架构是如何工作的。我正在使用三种类型的查询 A、B、C,扫描的字节数不同。Bytes Scanned 的大小是在 Profile Overview 中读取 Total Statistics。我比较了小型仓库和大型仓库中的执行时间。查询的扫描大小较小时,仓库大小的影响较小,扫描大小越大,仓库大小的差异越大(小2,大8)。性能方法。

我想知道这个结果的原理是怎样的。

| | | 总执行时间 | |

询问 字节扫描(MB) 大(毫秒) 小(毫秒) S/L比率
查询A 1860 1350 2800 2.1
查询B 6100 3800 12500 3.3
查询C 51940 19310 77000 4.0
4

2 回答 2

0

从文档中引用:

“ 仓库的大小会影响执行提交到仓库的查询所需的时间,尤其是对于更大、更复杂的查询。一般来说,查询性能随仓库大小而变化,因为更大的仓库有更多的计算资源可用于处理查询。”</p>

还:

“对于小型的基本查询,较大不一定更快”</p>

这有帮助吗?如果不是,请说明您要查找的其他信息

于 2021-08-03T06:33:46.137 回答
0

它与 Snowflake(或任何 Analytical MPP 数据库)如何并行处理数据有关。众所周知,一个仓库集群可能有多个节点,小仓库有2个,大仓库有8个,以此类推……每个节点有8个实例并行处理数据。为了清楚起见,我称他们为“工人”。

所以一个小仓库有 2 8=16 个工人,一个大仓库有 8个 8=64 个工人。如果数据量很小(表的微分区比总worker数少),那么您的查询将不会使用整个仓库资源。一些工作人员会在某些执行步骤中保持空闲,例如从表中读取。这就是为什么当您处理更大的数据时,您可以从大型仓库中获得更高的性能。

于 2021-08-03T08:07:46.780 回答