使用 UNION 的雪花查询性能
Snowflake query performance with UNION
我们有一堆查询,我们在查询时联合来自 3 table 秒的数据(我们从 3 个来源获取数据)。
我想知道如果我们将数据合并为一个 table(使用列源以便我们知道它来自哪里),查询性能是否会更好。
新 table 会更大,所以我不确定我们是否应该期待更好的性能。是否有关于此的一般指南?
扫描 3 tables VS 扫描 1 table 与合并内容应该没有显着差异。
但是,请确保您使用的是 UNION ALL
而不是 UNION
。根据 SQL 标准,SQL 中的 UNION
消除了重复记录,而这样做的过程可能非常昂贵。
不幸的是,在应该使用 UNION ALL
的地方使用 UNION
是我在 SQL 中看到的最常见的错误之一。我责怪标准,而不是用户:)
参见例如here 更多讨论。
我们有一堆查询,我们在查询时联合来自 3 table 秒的数据(我们从 3 个来源获取数据)。
我想知道如果我们将数据合并为一个 table(使用列源以便我们知道它来自哪里),查询性能是否会更好。
新 table 会更大,所以我不确定我们是否应该期待更好的性能。是否有关于此的一般指南?
扫描 3 tables VS 扫描 1 table 与合并内容应该没有显着差异。
但是,请确保您使用的是 UNION ALL
而不是 UNION
。根据 SQL 标准,SQL 中的 UNION
消除了重复记录,而这样做的过程可能非常昂贵。
在应该使用 UNION ALL
的地方使用 UNION
是我在 SQL 中看到的最常见的错误之一。我责怪标准,而不是用户:)
参见例如here 更多讨论。