Мы заметили, что запросы, выполняемые со стандартом SQL
, как правило, немного медленнее и много раз в 5 раз. Следующий запрос, который получает количество обращений, выполняется в 1,8 с устаревшим SQL
, но занимает 10 с использованием стандартного SQL
. Запросы являются:Стандартный SQL стабильно медленнее, чем Legacy SQL?
Наследие SQL:
SELECT
max_time,
COUNT(*) AS cnt
FROM (
SELECT
MAX(hits.time) WITHIN RECORD AS max_time,
FROM
[google_analytics.ga_sessions_20160601])
GROUP BY 1
ORDER BY 2 DESC
LIMIT 100;
Стандарт SQL:
SELECT
(SELECT MAX(time) FROM sessions.hits) AS max_time,
COUNT(*) AS cnt
FROM
`google_analytics.ga_sessions_20160601` AS sessions
GROUP BY 1
ORDER BY 2 DESC
LIMIT 100;
Мы заметили, что количество "вычислить" на первом этапе, как правило, немного выше, и на последнем этапе больше ждать.
Другие запросы, такие как простой SELECT COUNT(*)
также имеют схожие отличия.
Это правда, что стандарт SQL
последовательно медленнее, чем унаследованный SQL
?
Я все еще наблюдаю, что это так (январь 2017 года). – SheRey
Я наблюдаю (май 2017 года) ту же проблему: std SQL медленнее на 2-3 раза. Пример: 'SELECT substr (title, 1,1) t, count (1) cnt, sum (id), sum (num_characters) FROM [bigquery-public-data.samples.wikipedia] GROUP BY t ORDER BY cnt desc', который занимает менее 4,5s в наследии и старше 9 лет в стандартном SQL. – tworec