Предисловие.
В интернете задают вопросы, как настроить SQL сервер для 1С, какой из серверов баз данных лучше, производительней для 1С и тд. Простого ответа на вопрос нет, как и тестов, которые бы могли как-то показать различия. Не спорю, на производительность "много чего" влияет, и в эти тонкости мы не лезем в тестах. Наша задача на одном и том же аппаратном обеспечении, произвести тестирование одного и того же теста при абсолютно одинаковых параметрах, различаются только версии ОС и MSSQL. Базовые настройки MSSQL производились в точности по рекомендациям разработчиков 1С.
В тестах принимали участия (все обновления на момент тестирования):
MSSQL 2008 R2 SP3 | Windows Server 2008 R2 |
MSSQL 2012 SP4 | Windows Server 2012 R2 |
MSSQL 2014 SP2 | Windows Server 2016 |
MSSQL 2016 SP2 | PostgreSQL 9.6.10 |
Были исключены: Windows Server 2003 R2 и MSSQL 2005.
Железо
Тестирование производилось в виртуальной среде VMware на следующей конфигурации:
- CPU: Intel Core i7-3520M
- RAM: 16Gb DDR3L 1600 MHz
- SSD: Intel 540 240 Gb
Методика тестирования:
На каждую из хостовых ОС, устанавливались разные версии MSSQL, из таблицы выше.
В каждом режиме совместимости, производилось 2 теста без перезагрузки, затем менялся режим совместимости, перезагружался MSSQL и производилось новое тестирование.
Дополнительно были произведены тесты c использованием протокола Shared memory, а также один тест PostgreSQL 9.6.10 (postgrespro.ru) на CentOS 7. (для сравнения)
Результаты и субъективное мнение
С полными результатами можно ознакомиться в прилагаемом файле.
Поделюсь лишь своим субьективным мнением. Выводы каждый сделает сам.
- Лучше всех, во всех тестах себя показал MSSQL 2008 R2 и MSSQL 2012.
- Хуже всех, во всех тестах себя показал MSSQL 2014! Часто возникали ошибки при тестировании.
- Странное поведение MSSQL 2016 с протоколом Shared Memory - прироста практически нет, тест проводили несколько раз, отключали все проколы, проверяли..
- Очень удивила производительность PostgreSQL - ни чем не уступает MSSQL.
Конечно, многие скажут, что производительность PostgreSQL можно улучшить, оптимизировать, и тд, как и в MSSQL, но это уже совсем другие задачи, мы просто прогнали тесты в дефолтном режиме (рекомендованные или обязательные настройки были внесены), без фанатизма и глубокой оптимизации, поскольку большинство начинает оптимизировать работу связки при возникновении проблем с производительностью последних, а не заранее.
Замечания, относительно используемого железа, использовали то, что было свободно, поскольку каждый тест занимает 15-20 минут, суммарно более 120 тестов и 40 часов (1 неделя). Кроме того, оценивалось не "железо", а разница, на одном и том же "железе" или "аппаратном обеспечении", кому как нравиться.
Послесловие
Если данные тесты, окажутся кому-то интересны, и пост наберет немного оценок, можно продолжить тестирование различных сборок PostgreSQL, скажем на FreeBSD/Debian/CentOS/.., ставьте оценки и пишите свои замечания.
Полезные ссылки:
- Очевидные советы по ускорению работы 1С
- И снова о скорости работы 1с 8.х + тест от Гилева
- Многопоточное тестирование производительности сервера 1С
- О тесте Гилева
- Какая субд лучше (Гилев)