优化查询性能¶
您可以通过以下方式优化 Snowflake 查询性能:
搜索优化服务
查询加速
创建一个或多个物化视图(聚类或非聚类)
对表进行聚类
每种优化方法都有不同的优点,如下表所示:
特征 |
支持的查询类型 |
备注 |
|---|---|---|
搜索优化服务可以提高对 受支持数据类型 的搜索性能。 |
||
带有筛选器或聚合功能的查询。如果查询包括 LIMIT,则查询还必须包括 ORDER BY。
筛选器必须具有高度选择性,并且 ORDER BY 子句必须具有低基数。
查询加速适用于临时分析、数据量不可预测的查询,
以及具有大型扫描和选择性筛选器的查询。
|
查询加速和搜索优化是相辅相成的。两者都可以加速同一查询。请参阅 与查询加速的兼容性。 |
|
|
您还可以使用物化视图在同一源表(或该表的子集)上定义不同的群集密钥,或者存储展平 JSON 或 VARIANT 数据,以便只需展平一次。 物化视图仅可提高物化视图中包含的行和列子集的性能。 |
|
|
一个表只能根据一个密钥进行聚类,该密钥可以包含一个或多个列或表达式。 |
下表显示了哪些优化会产生存储或计算成本:
优化 |
存储成本 |
计算成本 |
|---|---|---|
搜索优化服务 |
✔ |
✔ |
Query Acceleration Service |
✔ |
|
物化视图 |
✔ |
✔ |
对表进行聚类 |
✔ [1] |
✔ |
与查询加速的兼容性¶
搜索优化和 查询加速 可以协同工作以优化查询性能。首先,搜索优化可以剪切查询不需要的 微分区。然后,对于 符合条件的查询,查询加速可以将其余部分工作分流到服务提供的共享计算资源。
这两种服务所加速的查询性能因工作负载和可用资源而异。