Вопрос проверяет способность разделять инфраструктурные и прикладные проблемы при отладке инцидентов.
Если запросы к БД медленные сами по себе, проблема скорее в базе. Если БД отвечает быстро, но общее время запроса большое — вероятна ошибка в бизнес-логике. Анализируют SQL-метрики, планы выполнения и время обработки в коде. Логи и трассировка помогают увидеть, где именно тратится время. Важно проверять оба слоя независимо.
Разделение проблем БД и бизнес-логики — это анализ того, где именно возникает задержка или ошибка: на уровне хранения данных или в коде сервиса.
Медленные SQL-запросы
Высокий execution time.
Отсутствие или неправильные индексы.
Рост нагрузки на БД
CPU, I/O, блокировки.
Очереди ожидания транзакций.
Проблемы видны вне приложения
Те же запросы медленные в psql или admin-инструментах.
Быстрые запросы, медленный endpoint
Основное время тратится между запросами.
Лишние обращения к БД
N+1 запросы.
Повторные чтения одних и тех же данных.
Сложная логика
Циклы, сериализация, валидация, преобразования.
# Замер времени:
# time_db + time_business_logic = total_time
Чёткое разделение БД и бизнес-логики достигается через измерения на каждом уровне, а не через предположения.