2017-04-10 71 views
0

我對真正少量的日內GA數據(大約166行)運行查詢。爲什麼查詢在BigQuery中運行得這麼久

SELECT pagePath 
FROM `dataset_id.ga_sessions_intraday_*` 
WHERE pagePath NOT IN (SELECT pagePath FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT') AND Type = 'PAGE' 

運行查詢後,有一個計數器:「查詢運行(792.7s)......」那不斷攀升及以上。到了3000秒,我不小心刷新了瀏覽器中的窗口,現在甚至沒有查詢在查詢歷史記錄中運行的跡象。

爲什麼需要很長時間才能運行查詢?爲什麼查詢在查詢歷史記錄中不可用?

回答

1

您使用通配符,這意味着你在查詢中dataset_id數據集中的所有ga_sessions_intraday_*表,其潛在的冗長運行

緩慢的另一個點的原因是不是最優低於WHERE子句

WHERE pagePath NOT IN (SELECT pagePath 
    FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT') 

你應該寧願使用

WHERE pagePath NOT IN (SELECT pagePath 
    FROM `dataset_id.ga_sessions_intraday_*` WHERE type = 'EVENT' GROUP BY pagePath) 
+0

謝謝你的回答。日內兩個表中的行總數爲166,所以我不認爲這是查詢速度緩慢的原因,並且最終不會出現在查詢歷史記錄中。 – user3853657