Возможно ли повысить производительность SQL-сервера с помощью кэширования?

Какое наиболее распространенное и простое в реализации решение для повышения скорости работы с базой данных SQL Server 2008R2 и приложением .Net 3.5.

У нас есть приложение со следующими атрибутами:
- небольшое количество одновременных клиентов (~ 200 на MOST).
- сложные математические операции на стороне SQL-сервера
- мы имитируем что-то для Oracle безопасности на уровне строк (таким образом, мы используем tvf и хранимые процессы вместо прямого запроса таблиц) -Главная проблема заключается в том, что пользователи выполняют большое количество обновлений / вставок / удалений / вычислений, и они нервничают, потому что им нужно дождаться перезагрузки страниц, пока эти действия будут выполнены.

Мне нужно прояснить следующие вопросы:

  1. Что быстрее: возврат всего набора данных с сервера sql и выполнение математических функций на стороне C # или выполнение функций вычислений на стороне sql (таким образом, без возврата дополнительных столбцов). Или это зависит только от оборудования?
  2. Улучшит ли кеширование производительность (например, если мы добавим кеш Redis). Или решения для кэширования возможны только для большого количества клиентов?
  3. Является ли плохой практикой предварительный расчет некоторых данных и их хранение где-нибудь в базе данных (так, когда пользователь запросит, они уже будут вычислены).Или это то, что кеширование должно делать? Если это не плохая практика, как настроить SQL-сервер для выполнения вычислений при наличии доступных ресурсов?
  4. Как кэширование может повысить производительность, если ему все еще нужно обратиться к базе данных и посмотреть, были ли обновлены какие-либо записи?

] общие предложения и комментарии также приветствуются.

5
задан user194076 24 February 2012 в 21:10
поделиться