日期分区表联合的性能

时间:2016-10-05 09:06:21

标签: google-bigquery

在我的数据集中,我有许多日期分区表,每个类别一个。它们都具有相同的结构。它们现在是小桌子,每个都有1500行。查询其中任何一个都需要3.5秒:

SELECT * FROM [dataset.table1] WHERE _PARTITIONTIME BETWEEN TIMESTAMP("YYYY-MM-DD") AND TIMESTAMP("YYYY-MM-DD")

(职位编号:bquijob_7e49a41d_1579405ac67)

有时,我需要查询两个或更多表的结果。当我尝试这个时,它需要花费很多时间来执行。我尝试了两种方法:

测试1:子查询

SELECT * FROM 
(SELECT * FROM [dataset.table1] 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("YYYY-MM-DD") AND TIMESTAMP("YYYY-MM-DD")), 
(SELECT * FROM [dataset.table2] 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("YYYY-MM-DD") AND TIMESTAMP("YYYY-MM-DD"))

花了12.7秒(职位编号:bquijob_6ce61e51_15794050134)

测试2:隐式联合

SELECT * FROM [dataset.table1], [dataset.table2] 
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("YYYY-MM-DD") AND TIMESTAMP("YYYY-MM-DD"))

花了14秒(职位编号:bquijob_669dc617_15793fdd09c)

为什么这么慢?有没有办法改善这些查询的性能?

提前致谢!

0 个答案:

没有答案