Есть ли библиотека для сравнения моего приложения Django для запросов SQL? - PullRequest
1 голос
/ 18 августа 2011

У меня есть большое сложное приложение Django, которое мы используем, которое делает много вещей. Посмотрев на панель инструментов отладки Django, некоторые из наших представлений выполняют много SQL-запросов. Я хочу повысить его производительность за счет уменьшения количества запросов SQL (например, добавив больше select_related, более умных запросов и т. Д.). Я хотел бы быть в состоянии измерить улучшение по мере моего продвижения, чтобы ободрить меня и иметь возможность сказать, сколько жира было обрезано. У меня есть большой набор модульных тестов django для этого приложения, которые затрагивают многие части кода.

Есть ли какая-нибудь библиотека / программа / сценарий, которая может запустить юнит-тесты и затем распечатать, сколько всего запросов SQL было выполнено? Таким образом, я могу итеративно улучшить наше приложение.

1 Ответ

4 голосов
/ 18 августа 2011

Эта информация доступна только в режиме отладки. Я не знаю ни одной библиотеки, которая могла бы делать именно то, что вы пытаетесь сделать, однако вы, вероятно, могли бы довольно легко что-то настроить.

Если вы работаете в режиме отладки, вы можете просмотреть все запросы, которые были выполнены с connection.queries. Именно так работает панель инструментов отладки django.

Так что измените ваши юнит-тесты, чтобы посмотреть на диктовку connection.queries, и это должно вас неплохо начать.

...