Спасибо за предложение.
Мы выяснили причину проблемы, ниже приводится причина
Когда кто-то пишет коррелированный подзапрос, например
select T2.col, (select count(*) from T1 where T1.col = T2.col) from T2
Технически SQL text подразумевает, что подзапрос необходимо повторно выполнить для каждой строки из T2. Если T2 имеет миллиард строк, нам нужно будет сканировать T1 миллиард раз. Это займет вечность, и запрос никогда не завершится. sh.
Стоимость выполнения запроса снизилась с O (размер T1 * размер T2) до O (размер T1 + размер T2), если реализовано, как показано ниже
select any_value(t.col), count(*) from
t left join T1 on T1.col = t.col
group by t.primary_key````
BigQuery errors out if it can't find a way to optimize correlated subquery into linear cost O(size T1 + size T2).
We have plenty of patterns that we recognize and we rewrite for correlated subqueries but apparently new view definition made subquery too complex and query optimizer was unable find a way to run it in linear complexity algorithm.
Probably google will fix the issue by identifying the better algorithm.