2024 年性能改进

重要

性能改进通常针对特定的查询模式或工作负载。这些改进可能会对特定工作负载产生实质性影响,也可能不会。

2024 年推出了以下性能改进。

发布时间

描述

影响

2024 年 12 月

改进了查询的共同或相似部分的共享。

减少具有多个 WITH 子句的查询的查询执行时间。

2024 年 12 月

Document AI 中改进了文档预处理和推理的扩展性。

减少文档处理时间。

2024 年 11 月

对包含聚合函数的查询进行 Top-k 修剪。

扩展 Top-k 修剪,使其包括包含 聚合函数 的查询。

2024 年 10 月

提高了具有相同(或相似)子查询或子表达式的查询的性能。

通过消除查询计划中的重复部分,缩短查询执行时间。

2024 年 10 月

改进了对偏差的处理。

通过自动检测并解决联接构建侧的偏差,减少查询执行时间。

2024 年 10 月

搜索优化更新:支持 联接查询。(正式发布)

提高联接查询的性能,因为在联接的构建侧有少量不同的值。

2024 年 10 月

改进元数据复制。

通过优化无服务器计算分配,减少复制刷新的 SECONDARY_UPLOADING_INVENTORY、PRIMARY_UPLOADING_METADATA 和SECONDARY_DOWNLOADING_METADATA 阶段所花费的时间。这一改进主要针对元数据容量较大的刷新。

2024 年 9 月

通过并行化改进克隆操作。

减少克隆对象所需的时间,尤其是对于具有大量元数据的数据库和架构。

2024 年 9 月

通过并行化改进复制刷新。

在复制大量数据时,可缩短整体刷新时间。

2024 年 8 月

提高了 LIMIT 查询的性能。

减少使用 LIMIT 子句从表中返回 n 行的查询的编译和执行时间。这种优化将扫描的分区缩小到只覆盖前 n 行。

2024 年 7 月

改进了复制时的表列同步。

缩短刷新操作 SECONDARY_DOWNLOADING_METADATA 阶段的时间。

2024 年 7 月

与虚拟仓库可用的计算资源相比,提高了只扫描少量微分区的查询的仓库利用率。

当扫描来自少量微分区的数据时,可更快地执行具有昂贵操作的查询,这在 BI 和仪表板用例中很常见。

2024 年 7 月

改进了查询处理:

  • 将 LIMIT 子句下推到除 ANY_VALUE 函数外不包含任何聚合的聚合节点。

  • 当通过验证执行 PRIMARY KEY 或UNIQUE 约束,或使用 RELY 约束属性时,可消除多余的分组键。

使用 LIMIT 子句和 GROUP BY 语句的某些查询执行速度更快。

2024 年 6 月

改进了单指令、多数据 (SIMD) 处理。

  • 对于访问包含 NULL 值的列的查询,可缩短查询执行时间并提高扫描性能。

  • 从远程存储读取数据时,通过更高效地解码数字,提供更好的扫描性能。

2024 年 5 月

提高 自动群集 的效率。

降低自动群集的成本,因为其工作效率更高。

2024 年 5 月

改进了对象复制。

通过优化某些对象的同步和复制操作的授权机制,缩短刷新操作 SECONDARY_UPLOADING_INVENTORY 和 SECONDARY_DOWNLOADING_METADATA 阶段的时间。

2024 年 5 月

当文件格式选项 USE_VECTORIZED_SCANNER 设置为 TRUE 时,加载大多数 Parquet 文件的延迟时间最多可减少 50%。

矢量化扫描器非常适合 Parquet (https://parquet.apache.org/docs/file-format/) 文件的列格式,它只将 Parquet 文件的相关部分(如选定列的子集)下载到内存中,从而减少了引入延迟。

2024 年 5 月

改进了聚合评估,以便在更多中间联接树上进行聚合。

通过减少需要尽早处理的数据量,缩短带有聚合功能的复杂查询的执行时间。

2024 年 5 月

对于需要花费大量时间在虚拟仓库节点间通信的查询,查询执行时间得到了改善。

提高仓库中计算资源之间的吞吐量。每个仓库都是计算资源的集群。

2024 年 5 月

改进了 LIMIT 和 ORDER BY 查询的 top-k 修剪。

由于扫描的文件和文件标头读取减少,减少了 top-k 查询的执行时间。扩展了现有的 top-k 改进,以在 ORDER BY 列中添加 STRING/BINARY 支持。通过相对于值域按最大/最小文件的顺序对扫描集进行排序,进一步提高了修剪效率。

2024 年 5 月

通过计算更具粒度的选择性估计值,改进了联接顺序决策。

通过在微分区级别计算选择性估计值来减少编译时间和查询执行时间。

2024 年 5 月

加快 Python 的加载时间。

提高 Streamlit in Snowflake 应用程序(包括 Snowflake Native App 中的 Streamlit 应用程序)、Python 工作表、Python UDFs 和 Python 中的存储过程的性能。

2024 年 4 月

减少了锁定/互斥争用。

通过提高各种情况下的扫描性能(如在仓库中运行的高并发查询)来缩短查询执行时间。

2024 年 4 月

改进了广播联接决策。

通过在类似右深层连接树这样的场景中优化广播连接,减少了查询执行时间并改进了内存管理。

2024 年 4 月

更快地在 Snowsight 中获得查询结果。

减少了查询结果在 Snowsight 中运行时显示所需的时间。对于返回结果集大于 10,000 行的查询,改进最为明显。

2024 年 3 月

改进元数据复制。

缩短元数据 PRIMARY_UPLOADING_METADATA、SECONDARY_DOWNLOADING_METADATA 和 SECONDARY_UPLOADING_INVENTORY 阶段的时间。

2024 年 3 月

通过更准确地计算选择性估计值以优化联接顺序,提高了查询性能。

减少了分区元数据与联接筛选器的实际基数不匹配时的执行时间。

2024 年 3 月

提高了加载 JSON 文件的性能。

为许多 JSON 加载场景降低高达 25% 的引入延迟。

2024 年 2 月

改进了对象复制。

通过优化快照操作的部分内容以及将某些对象添加到复制清单的方式,缩短刷新操作中 PRIMARY_UPLOADING_METADATA、SECONDARY_DOWNLOADING_METADATA 和 SECONDARY_UPLOADING_INVENTORY 阶段的时间。

2024 年 2 月

对一些函数新增了 upperlower 排序规则支持。

能够设置某些函数的 upperlower 排序规则规范。对于某些用例,upperlower 排序规则的性能优于 ci 规范。以下函数现在支持 upperlower 排序规则规范:CHARINDEXCONTAINSENDSWITHPOSITIONSPLITSPLIT_PARTSTARTSWITH。有关更多信息,请参阅 ci 和 upper / lower 的区别

2024 年 1 月

改进了 LIMIT 0 查询的执行时间。

减少了使用带有 LIMIT0 计数的查询的执行时间,应用程序通常使用该计数返回查询结果的列标题和数据类型。

2024 年 1 月

在 Microsoft Azure 区域(不包括 Azure 政府区域)中正式发布 大型仓库 (5X-LARGE 和 6X-LARGE)。

与较小的仓库相比,大型仓库能够使用较大的计算资源进行内存密集型查询。

语言: 中文