Некоторые авторитетные товарищи прямо и недвусмысленно отказываются отвечать на вопрос: "Какая СУБД лучше?". Другие - менее авторитетные товарищи - говорят: "Только MS SQL Server принесет счастье в ваш дом". Третьи - уже совсем не авторитетные товарищи - несут в массы мнение об опенсорсе как единственном обладающем реальной производительностью железа ПО; а в продуктах Microsoft через строчку Sleep(random) понатыкано.
В целях выяснения - кто же прав - и была задумана эта статья. А поскольку каждое мнение должно быть аргументировано - было проведено сравнительное тестирование производительности для следующих продуктов:
- Microsoft SQL Server 2008 R2
- PostgreSQL для Linux
- PostgreSQL для Windows
Oracle и DB2 решено пока не трогать. Они относительно малораспространены: немногие возьмутся их внедрять в продакшн и поддерживать. Да и официально рекомендуемого дистрибутива Oracle от 1С нет. К тому же пара "Postgre - MsSQL" - яркий пример противостояния "Блокировочник vs Версионник".
Впрочем в нашей задаче речь о многопользовательской работе - где разница между блокировками и версионированием особенно заметна - не идет: мы желаем лишь сравнить пропускную способность на запись.
И сравним!
И сравнили.
Результаты сравнения прилагаются.
Вкратце результат сравнения таков: производительность Microsoft SQL Server и PostgreSQL принципиально не отличается при условии: речь идет о PostgreSQL на Linux. А вот на Windows PostgreSQL ставить не следует - нерационально это.
А поскольку никакой тюнинг СУБД (кроме самого базового) не проводился - следует признать: правы первые - наиболее авторитетные товарищи.