雪花查询配置文件界面

时间:2020-09-12 20:14:01

标签: snowflake-cloud-data-platform

已经使用Snowflake Query Profile Interface进行了操作,但是缺少有关查询执行中并行性的信息。使用大型或XLarge仓库,它仍然仅使用两个服务器来执行查询。拥有大型XLarge Warehouse可以分为16个并行执行线程,以充分利用我的Warehouse和信用。还是?

示例:拥有一个中等仓库,例如:

Medium Warehouse => 4 servers

执行以下查询:

选择 sum(o_totalprice)“订单总数”, count(*)“订单数”, c.c_name“客户” 从 订单o内部加入客户c on c.c_custkey = o.o_custkey 哪里 (2,7,22)中的c.c_nationkey 通过...分组 c.c_name

给出以下查询计划:

Query Plan

在执行细节中,我看不到有关参与服务器的任何信息:

enter image description here

最好的问候 扬·伊萨克森(Jan Isaksson)

2 个答案:

答案 0 :(得分:0)

在理想情况下,雪花将尝试拆分您的查询,并让仓库的每个核心都处理一部分查询。例如,如果您有一个2XL仓库,则您有32x8 = 256核(仓库中的每个节点有8核)。因此,如果提交查询,则在理想情况下,雪花将尝试将其分为256个部分,并使每个核心进程都参与其中。

实际上,可能无法做到这种程度的并行化,这是因为查询本身无法像这样分解(例如,如果您要计算一个中位数)或数据本身阻止它并行化(例如,如果您尝试在倾斜的列上运行窗口函数)。

因此,并非总是如此,如果您搬到更大的仓库,查询性能会线性提高。

答案 1 :(得分:0)

我从最小的计算大小开始测试您的查询。线性扩展(更多的计算资源可提高性能)在中等大小附近停止,此时,性能提升没有任何额外的好处。这表明您的查询不够大,无法利用更多的计算资源,并且size足够好,尤其是考虑成本优化的情况。