Определите приоритет доступа к базе данных в SQL Server 2008
Мы используем базу данных SQL Server 2008. Эта база данных предоставляет данные для двух основных приложений:
- Веб-сайт для отображения зрителя.
- Приложение маршрутизации, которое должно быть очень отзывчивым!
Можно ли отдавать разные приоритеты этим двум приложениям и каковы были бы все доступные нам возможности? Я боюсь, что наш веб-сайт Viewer из-за ошибки или чего-либо еще замедлит работу нашего приложения маршрутизации.
Я хочу защитить приложение маршрутизации, чтобы оно было максимально отзывчивым. Какие решения я мог бы использовать?
1 ответ
Энди М, чтобы достичь такого уровня настройки в SQL, вы должны использовать Resource Governor. Это может быть проблемой, поскольку доступно только в (дорогих) версиях Datacenter & Enterprise.
Если вы не можете позволить себе эти издания, есть несколько вещей, которые вы можете рассмотреть:
ГЕНЕРАЛЬНЫЙ
- Разделите вашу базу данных на 2: одну для приложения маршрутизации, другую для приложения просмотра. Таким образом, вы можете настроить их отдельно, чтобы получить наилучшую производительность;
- Рассмотрите возможность приобретения жестких дисков на свой сервер (SSD, если вы можете себе это позволить) и разделите файлы данных / индексов между ними, чтобы увеличить число операций ввода-вывода (таким образом, скорость реакции);
МАРШРУТНОЕ ПРИЛОЖЕНИЕ
- Если вам нужна высокая производительность только при запросе данных, вы можете предварительно обработать эти данные, оставив их в окончательном моделировании. Такой подход может повысить производительность вашего запроса на несколько порядков;
- Если вам нужно обработать информацию для этого запроса, но не вся эта обработка имеет отношение к выводу, попробуйте буферизировать обработку: проанализируйте, какая обработка данных может быть отложена, и просто запишите данные в некоторые фиктивные таблицы (возможно, в другой БД), и обрабатывать их в другое время.