Выбор конфигурации сервера СУБД
Хотя многих пользователей часто интересуют некоторые рекомендации по выбору конфигурации той или иной системы, полезность этих рекомендаций в значительной степени зависит от анализа самого приложения. Эффективность работы самого приложения и СУБД намного важнее, чем конфигурация хост-машины. Имеются буквально сотни примеров небольших изменений, проведенных в приложении или в схеме базы данных, которые обеспечивали 100- или 1000-кратное увеличение производительности системы. На общую производительность системы весьма существенное воздействие может оказывать хорошо продуманная индексация. После начальной инсталляции системы обязательно нужно произвести сбор статистики об ее работе, чтобы выяснить необходимость внесения изменений в базу данных. Часто оказывается возможным улучшить производительность приложения путем реорганизации базы данных даже без обращения к исходному коду приложения.
Другим соображением, которому уделяется недостаточно внимания, но которое часто оказывает огромное воздействие на результирующую производительность системы, являются конфликты по внутренним блокировкам. Если выбрана неоптимальная стратегия блокировок, то система может оказаться очень плохо работающей. Следует также отметить, что каждая СУБД имеет огромное число настраиваемых параметров, и некоторые из них могут серьезно воздействовать на общую производительность системы.
Ниже перечислены вопросы, ответы на которые позволяют обобщить процесс выбора конфигурации сервера СУБД.
- Какая используется СУБД?
- Какие используются мониторы транзакций (если таковые вообще применяются)?
- Можно ли использовать систему в конфигурации клиент-сервер?
- Сколько одновременно активных пользователей должна поддерживать система?
- Можно ли выделить основной или доминирующий шаблон (образец) обращения к системе? Какие запросы доминируют в нагрузке?
- Какова стратегия индексации? Какие запросы будут оптимизированы с помощью индексации (например, преобразованы для реализации произвольного доступа к данным вместо последовательного) и какие запросы должны быть реализованы с помощью полного или частичного сканирования таблицы?
- Насколько велик чистый размер базы данных?
- Имеется ли достаточное количество дисковых накопителей и главных адаптеров SCSI, сконфигурированных для обеспечения обработки предполагаемой нагрузки? Имеются ли отдельные диски для журналов СУБД и архивов?
- Имеется ли достаточная емкость дисковой памяти для хранения необработанных данных, индексов, временных табличных пространств, а также место для возможного увеличения объема данных?
- Достаточно ли число процессоров, сконфигурированных для работы с предполагаемым количеством пользователей?
- Требуется ли специальная выделенная сеть для организации связи между клиентскими системами и сервером?
- Если предполагаемая нагрузка ориентирована на интенсивное внесение обновлений в базу данных, имеется ли место в конфигурации для NVRAM?
- Согласована ли предполагаемая стратегия резервного копирования с типом, числом и размещением устройств резервного копирования SCSI?