工作负载如何影响动态表性能

优化管道中的工作负载有助于降低成本并提高整体性能。Snowflake 建议通过调整工作负载来开始优化,因为这是提高动态表刷新性能的最有效方法。

查询

仔细查看动态表中的查询,并寻找减轻其工作负载的方法,例如:

  • 添加过滤器以减少需要扫描的数据量。

  • 尽早消除管道中的重复项,随后避免使用 DISTINCT

  • 减少使用 NULL 并确保源数据中的引用完整性,以便可以将外部联接替换为内部联接。

  • 避免具体化不经常读取的大列。

局部性

考虑表中数据的布局。为了获得良好的性能,查询访问的数据应该相互靠近,称为 局部性

例如,如果需要按特定列高效搜索行,则应按该列对表进行 聚类。理想情况下,表的局部性应与查询的结构保持一致,尽可能按 JOINGROUP BYPARTITION BY 键进行聚类。为了从聚类中受益,聚类键的序列必须与分区键的序列有共同的前缀。

请记住,优化局部性涉及权衡取舍。同时优化多个列的局部性是一项挑战,因此请专注于最有影响力的列,以获得最佳性能。有关更多详细信息,请参阅 了解 Snowflake 表结构

语言: 中文