在我的数据集中,我有许多日期分区表,每个类别一个。它们都具有相同的结构。它们现在是小桌子,每个都有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)
为什么这么慢?有没有办法改善这些查询的性能?
提前致谢!