2016-06-09 2 views
5

Мы заметили, что запросы, выполняемые со стандартом 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?

+1

Я все еще наблюдаю, что это так (январь 2017 года). – SheRey

+0

Я наблюдаю (май 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

ответ

2

Спасибо за отчет - мы будем исследовать его. Стандартный SQL все еще находится в бета-версии, и есть известная производительность, которая должна быть выполнена до финальной версии - мы также проверим, влияет ли это на ваши запросы.

+1

Это все еще происходит с марта 2017 года, причем большинство запросов примерно в 2-3 раза медленнее со стандартным sql. –

+0

@ManiGandham - можете ли вы предоставить идентификаторы работы для быстрых (устаревших) и медленных (стандартных) запросов - у нас нет такого несоответствия в наших тестах, но, возможно, это зависит от ваших данных? –

+0

GCP поддержка кейс # 12209159 подтверждает это с персоналом. instinctive-01: bquijob_1c21511b_15a8bda9ad0 для наследия. инстинктивный-01: bquijob_1e7d55a5_15a8bda7329 для стандарта. –