Ежемесячно у нас есть множество временных расчетов, которые в общей сложности занимают 4 дня. Мы не можем изменить так много сценариев, поэтому я ищу конфигурационное/аппаратное решение.
Фон
Это не процесс ETL, потому что мы создаем биты информации как минимум из 10 приложений (поэтому я бы назвал это вычислениями или множеством операторов обновления). Эта комбинация информации является лишь одним из этапов более крупного процесса, который в конечном итоге сохраняет рассчитанные данные с помощью обычного процесса ETL (SSIS) в хранилище данных. Если на этом этапе расчета произойдет сбой (падение сервера), мы легко сможем его перезапустить.
Проблема
Сервер MSSQL, на котором выполняется этот расчет, имеет только 2 HDD-raid1. Один RAID1 для данных, индексов и базы данных tempdb и один для журнала. Эти вычисления производят так много операций ввода-вывода, что весь процесс занимает несколько дней. На сервере установлено 180 ГБ рома, и теоретически все данные и результаты этих вычислений могут поместиться только в 5 ГБ памяти. Это означает, что мы неправильно используем базу данных/ресурсы.
Возможное решение
Я думаю, что нам нужно в первую очередь сократить объем ввода-вывода, а также обрабатывать тот ввод-вывод, который в любом случае необходим, на втором этапе. Кстати, сервер — MSSQL 2014 SE.
Любая помощь будет оценена по достоинству.
С наилучшими пожеланиями
Фон
Это не процесс ETL, потому что мы создаем биты информации как минимум из 10 приложений (поэтому я бы назвал это вычислениями или множеством операторов обновления). Эта комбинация информации является лишь одним из этапов более крупного процесса, который в конечном итоге сохраняет рассчитанные данные с помощью обычного процесса ETL (SSIS) в хранилище данных. Если на этом этапе расчета произойдет сбой (падение сервера), мы легко сможем его перезапустить.
Проблема
Сервер MSSQL, на котором выполняется этот расчет, имеет только 2 HDD-raid1. Один RAID1 для данных, индексов и базы данных tempdb и один для журнала. Эти вычисления производят так много операций ввода-вывода, что весь процесс занимает несколько дней. На сервере установлено 180 ГБ рома, и теоретически все данные и результаты этих вычислений могут поместиться только в 5 ГБ памяти. Это означает, что мы неправильно используем базу данных/ресурсы.
Возможное решение
Я думаю, что нам нужно в первую очередь сократить объем ввода-вывода, а также обрабатывать тот ввод-вывод, который в любом случае необходим, на втором этапе. Кстати, сервер — MSSQL 2014 SE.
- Переместите базу данных tempdb на виртуальный ром-диск (около 40 ГБ). Это значит, что мы переместим основной ввод-вывод в память, верно?
- Используйте больше временных таблиц, чтобы сократить время ведения журнала сервера и восстановления, а также используйте новый ром-диск (действительно меньше журналов?)
- Поместите логи, индексы и важные таблицы на новый SSD-рейд5.
- Все остальные данные поместите на старые HDD-диски.
Любая помощь будет оценена по достоинству.
С наилучшими пожеланиями