Вы пробовали профилировать ваше приложение?
Не уверен, какую платформу вы используете (если есть), но, откровенно говоря, из ваших вопросов, я сомневаюсь, что у вас есть технический навык, чтобы просто оценить это и выяснить, где все замедляется.
Проще говоря, вы не должны возиться со сложными способами, чтобы попытаться решить вашу проблему, потому что вы действительно не понимаете, в чем проблема. Вы, скорее всего, сделаете это хуже, чем лучше.
То, что я бы порекомендовал вам сделать, это время на каждом шагу. Скорее всего, вы обнаружите, что либо
- у вас есть один или два действительно длинных работающих бита или
- вы выполняете множество запросов из-за ошибки n + 1 или тому подобного
Когда вы обнаружите, что идет не так, исправьте это. Если вы не знаете как, напишите снова. ; -)