优化查询性能

您可以通过以下方式优化 Snowflake 查询性能:

  • 搜索优化服务

  • 查询加速

  • 创建一个或多个物化视图(聚类或非聚类)

  • 对表进行聚类

每种优化方法都有不同的优点,如下表所示:

特征

支持的查询类型

备注

搜索优化服务

搜索优化服务可以提高对 受支持数据类型 的搜索性能。

Query Acceleration Service

带有筛选器或聚合功能的查询。如果查询包括 LIMIT,则查询还必须包括 ORDER BY。
筛选器必须具有高度选择性,并且 ORDER BY 子句必须具有低基数。

查询加速适用于临时分析、数据量不可预测的查询,
以及具有大型扫描和选择性筛选器的查询。

查询加速和搜索优化是相辅相成的。两者都可以加速同一查询。请参阅 与查询加速的兼容性

物化视图

  • 平等搜索。

  • 范围搜索。

  • 为操作排序。

您还可以使用物化视图在同一源表(或该表的子集)上定义不同的群集密钥,或者存储展平 JSON 或 VARIANT 数据,以便只需展平一次。

物化视图仅可提高物化视图中包含的行和列子集的性能。

对表进行聚类

  • 平等搜索。

  • 范围搜索。

一个表只能根据一个密钥进行聚类,该密钥可以包含一个或多个列或表达式。

下表显示了哪些优化会产生存储或计算成本:

优化

存储成本

计算成本

搜索优化服务

Query Acceleration Service

物化视图

对表进行聚类

[1]

与查询加速的兼容性

搜索优化和 查询加速 可以协同工作以优化查询性能。首先,搜索优化可以剪切查询不需要的 微分区。然后,对于 符合条件的查询,查询加速可以将其余部分工作分流到服务提供的共享计算资源。

这两种服务所加速的查询性能因工作负载和可用资源而异。

语言: 中文