从Snowflake表中查询60列会比查询20列花费更多吗?

问题描述

我们正在尝试找到一种更便宜,更易管理的方式来存储和执行查询。一种方法是每次有人查询时从60列中检索信息,另一种方法是处理任何必要的列。会产生巨大的成本影响吗?

场景: 我们有一个视图,它使用60列来读取并进行一些计算,并且我们假设要使用15列来计算5个指标。

另一种方法是只选择那15列并提供结果。

前一种方法的成本会比后一种方法高吗?什么程度?

解决方法

是的,在多个级别上。

几种方法:

  1. 解析所有60列值的处理能力与20列相反。
  2. 网络IO:更多列表示用于将数据从云传输到客户端的更多网络IO。因此,在这种情况下,使用60列时所需的IO大约要多2倍。 (当然,这取决于列数据类型,大小等)

即使看起来并不多,但每个效率低下的查询都会一点点增加成本,并且会花费很多,尤其是如果您打算长期使用它。