Тестовые запросы, testRegistrationCount, testIncome, testRegCountByPartner - Программа расчета агрегатов по накапливающимся данным для построения отчетов

Для замеров производительности использовалось три запроса, представляющих три наиболее типичные проблемные рассчеты. Ниже приведены эти запросы на языке DQL, используемом в Doctrine. DQL позволяет неявно описывать критерии операции JOIN внутри WHERE. Все запросы Doctrine обрабатывает как prepared statement, то есть синтаксический разбор аналогичных DQL и SQL не происходит повторно.

TestRegistrationCount

Подсчет количества регистраций у организатора -- самый простой запрос. Здесь только один джойн, покрытый индексами.

SELECT count(r. id) from Registration r, r. Event e WHERE e. organization_id = ?;
TestIncome

Подсчет дохода организатора -- сумма всех выплаченных посетителями сумм. Почти то же самое, но уже нужно не считать ряды, а суммировать.

SELECT sum(r. sum) from Registration r, r. Event e WHERE e. organization_id = ?;
TestRegCountByPartner

Подсчет регистраций организатора, привлеченных определенным партнером. Более сложный запрос с двумя джойнами. Также представляет повышенную сложность и для StatMetric, так как использует "двойной срез".

SELECT count(r. id) from Registration r, r. Event e, r. Campaign c WHERE e. organization_id = ? and c. partner_id = ?;

Похожие статьи




Тестовые запросы, testRegistrationCount, testIncome, testRegCountByPartner - Программа расчета агрегатов по накапливающимся данным для построения отчетов

Предыдущая | Следующая