Повышение производительности приложения путем добавления индексов в базу данных.

У меня есть старое веб-приложение с большим количеством устаревшего кода, и мне нужно повысить производительность для некоторых отчетов. Я хочу избежать переписывания отчетов, потому что это стандартное унаследованное приложение, которое сложно поддерживать, тестировать и разрабатывать. Поэтому я пытаюсь ускорить эти отчеты, добавив индексы для запросов отчетов в MSSQL (2008). Отчеты выполняют около 3-4 тыс. Запросов.

Ниже мой план улучшения:
1. Очистите буферы MSSQL, запустив

DBCC DROPCLEANBUFFERS  
DBCC FREEPROCCACHE  
DBCC DROPCLEANBUFFERS

2. Запустите MSSQL profiler, а затем выполните отчет.
3. Соберите все запросы отчета и затем экспортируйте их в MSSQL.
4. Рассчитайте сумму продолжительности.
5. Группируйте запросы поtextdata и заказать их поsum(duration) desc.
6. Выполните запросы из экспорта профилировщика и добавьте индексы, которые рекомендованы MSSQL Management Studio.
7. Повторите шаги с 1 по 6 и сравните результаты.

У меня есть интересные результаты. Когда я улучшаю производительность отчета № 1, производительность отчета № 2 уменьшается. Также иногда после добавления индексов производительность снижается в десять раз.

Мои вопросы:
1. Является ли хорошей идеей повысить производительность приложений за счет повышения производительности SQL-запросов?
2. Можно ли улучшить производительность отчетов, которые выполняют 3-4 тыс. Запросов SQL, добавив индексы?

Ответы на вопрос(1)

Ваш ответ на вопрос