Суть задачи заключалась в оптимизации рекурсивного запроса, который собирал дерево данных в проекте: от крупных деталей, таких как трансформаторы, до мелких, таких как шурупы, а также их материалы и связанные с ними абстракции. Первая идея заключалась в том, чтобы заменить рекурсию на стек с циклами, но это только ухудшило ситуацию. Временные затраты увеличились. После отката к первоначальному варианту было решено внедрить ленивые запросы к базе данных, что сократило время выполнения на 10-20 секунд.