Требуется помощь в выборе сервера БД
От: Karaya1  
Дата: 02.08.12 11:32
Оценка:
Приветствую уважаемых форумчан.

Передо мной встала задача дать рекомендации по конфигурации сервера БД нашей системы под конкретный объект.
База данных — MS Sql Server 2008 R2 Enterprise. Работать будет под Windows Server 2008 R2. На сервере кроме БД больше ничего крутиться не будет. Должно быть зеркалирование диска (дисков?)

Честно говоря, никогда этим не занимался, надеюсь, что тут мне помогут.

Ситуация такая.
Есть различные устройства, снимающие показания с подключенных к ним датчиков. Всего таких устройств в системе — 8 000.
Также есть около 30 типов различных бизнес-сущностей.
Данные бизнес-сущностей и конфигурации устройств хранятся в различных таблицах БД, причем меняются крайне редко. Размер таблиц небольшой, в среднем по 30 000 записей на таблицу.

У устройств есть набор состояний, зависящих от показаний подключенных датчиков. Состояния устройств хранятся в отдельной таблице, представляющей из себя id Устройства|имя cостояния|значение|timestamp. Всего в таблице хранится 200 000 состояний, количество записей фиксированно.

Также есть таблица логов, в которой ведется протокол событий системы. Ключем является число с автоинкрементом. У таблицы 8 полей, 6 из которых — это ДатаВремя, числа, 3 Guid (внешние ключи), и 2 — это текстовые поля по 230 символов, в которых содержится текстовая + дополнительная информация о произошедшем событии.

Каждый раз, когда меняется какое-либо состояние любого из устройств в систему приходит событие, по которому надо
a) Сделать апдейт таблице состояний, чтобы обновить значение изменившегося состояния устройства
б) Добавить запись с текстовой расшифровкой события в лог.

Пиковое количество событий — 6 000 событий в секунду. Большое количество событий (не обязательно пиковое) возникает 3 раза в сутки и держится в течение получаса. В течение остальных суток их или крайне мало/нет вообще или примерно 50 событий в секунду.

Также у системы есть различные рабочие места, работающие с данными системы. Самыми частыми (собственно это 90% запросов) являются периодические запросы
1) к таблице состояний за сведениями об измененившихся состояниях устройств с момента предыдущего обращения (определяется по timestamp состояния)
2) к таблице логов за событиями, появившимися с момента предыдущего обращения (определяется по идентификатору. т.е. те события, у которых идентификатор больше максимального идентификатора, полученного при предыдущем обращении) с 2-3 джойнами к небольшим таблицам (макс. 30 00 записей) с конфигурацией устройств/данными бизнес-сущностей.

среднее количество запросов 1) — 200 в секунду, пиковое — 500
среднее количество запросов 2) — 200 в секунду, пиковое — 500

Логи событий требуется хранить в БД в течении года. Количество событий в год около 200 000 000
Размер базы данных за год около 200 Гб.

Также по событиям периодически снимаются отчеты. Запросы для отчетов имеют множество различных фильтров и в среднем 5-6 join-ов.
Отчеты снимаются
1. Раз в сутки по событиям за сутки
2. 4-5 раз в месяц по событиям за месяц.
3. 1-2 раз в месяц по событиям за квартал/год

Для работы с отчетами используется MS Sql Server Reporting Services, установленный на этом же сервере.

По поводу стоимости. Вопрос об экономии средств особо не стоит. Устроит решение за деньги, адекватные решаемой задаче
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.