临时表比变量表大查询更快

temp tables faster than variable tables big query

我在处理长查询时一直使用 With tabes,但我最近尝试了 create temp table 并且执行速度快得多。使用 With tables(变量名)的那个在 12 分钟后得到一个错误太重,使用 create or replace temp table 的那个在不到 2 分钟内完成。为什么会这样?

Temporary tables 可以根据分析要求灵活地为数据可视化定制 table。更重要的是,TEMP的use-case在本地临时tables,只对当前会话可见。

同时,WITH 子句充当临时 table,但它实际上是可以在其他地方使用的子查询的结果。

你得到的时间差是因为临时table使用了cache query results。这意味着查询值存储在高速缓存中。这就是为什么它比使用 WITH 子句的查询执行得更快。有时,当您 运行 重复查询时,BigQuery 会尝试重用缓存的结果。