Сегодня я экспериментировал с использованием объяснять анализ, чтобы извлечь время выполнения моих запросов. Я надеялся правильно вычислить время их выполнения без влияния задержек запросов, однако в документация утверждает, что вместо этого существуют накладные расходы на профилирование:
Чтобы измерить затраты времени выполнения каждого узла в плане выполнения, текущая реализация EXPLAIN ANALYZE добавляет накладные расходы на профилирование для выполнения запроса. В результате выполнение EXPLAIN ANALYZE для запроса иногда может занимать значительно больше времени, чем выполнение запроса в обычном режиме. Объем накладных расходов зависит от характера запроса, а также от используемой платформы. Наихудший случай имеет место для узлов плана, которые сами по себе требуют очень мало времени на выполнение, и на машинах, которые имеют относительно медленные вызовы операционной системы для получения времени суток.
В результате я сомневаюсь в полезности объяснить анализ, поскольку кажется, что вы просто торгуете задержкой с накладными расходами на профилирование. Что еще более удивительно, синхронизация моих запросов к базе данных в коде (Python в моем случае с библиотекой psycopg2) приводит к меньшему времени выполнения запросов.