DB2 vs PostgreSQL и SQL Server

Кто-нибудь использовал все три базы данных? Каковы ваши впечатления от них? PostgreSQL выглядит довольно соблазнительно для проекта, но мне любопытно узнать больше об этом (мы - NET Shop). Я также слышал о том, что многие люди довольны DB2.

Ответы

Ответ 1

Я работаю в очень большой организации, которая использует DB2 прежде всего в Linux (Red Hat). У нас есть несколько крупных баз данных и мы исследовали переход к другим решениям для РСУБД, таким как Oracle и SQL Server. Я проделал большую работу над этим SQL-сервером.

Мы обнаружили, что SQL-сервер работает намного лучше и требует меньше настройки, чем DB2, особенно если таблицы больше 1 М записей. HADR также является трудным и громоздким, если не сказать больше.

Мы обнаружили много различий между DB2 и SQL Server и слишком много, чтобы перечислить здесь. Я был ответственным за то, что я занимаюсь разработкой кода преобразования кода с одной платформы на другую и не могу сказать, что я нашел что-то в DB2 лучше, чем SQL-сервер, но нашел много вещей, которые мне больше понравились в SQL-сервере. Вот некоторые из моих ног:

  • Улучшенные типы данных выбора в SQL Server, например MONEY и SMALL MONEY.
  • Смешанная кодировка символов в SQL Server. Некоторые столбцы могут быть ANSI и другими UNICODE (char и nchar, соответственно). Настройка этого в DB2 не проста и не проста.
  • Лучшие инструменты на SQL-сервере, в основном SSIS для ETL (в отличие от безупречной цены IBM Data Stage).
  • SQL-сервер имеет более прощающий синтаксис. Например, вам не нужны полуколонны повсюду. Может быть, это только личное предпочтение, но я нашел гораздо легче кодировать в T-SQL.
  • Многие расширенные функции работают лучше на SQL-сервере. Например, SQL-сервер позволяет выполнять сжатие на уровне страницы, где DB2 ограничена сжатием на уровне строк.
  • Было проще настраивать запросы SQL Server с помощью IDE SQL Server

Есть больше, но, честно говоря, я предлагаю, чтобы каждый, кто рассматривает один над другим, должен установить оба и потратить некоторое время на работу с обеими системами. Сейчас кажется, что SQL-сервер является лучшим общим решением, но DB2 может однажды взять корону.

Наконец, при работе с хранилищами данных SQL, SSIS и SSAS сделали гораздо лучшее решение, чем InfoSphere, DataStage и DB2. Я мог бы написать на нем технический документ, но мое предложение здесь состоит в том, чтобы настроить его самостоятельно и провести неделю или играть с каждым решением. Решение Microsoft здесь было быстрее и дешевле, чем IBM. Я не знаю никаких других оснований для принятия решения.

Платформа не должна быть проблемой, поскольку базы данных обычно работают на своих собственных машинах, но всегда есть те, "не Microsoft"! и "нет linux!" магазины вокруг. Это позор, на самом деле. Я бы рекомендовал SQL-сервер.

Ответ 2

Как человек DB2, я могу предложить несколько подробностей о том, что можно ожидать от запуска DB2 for Windows и разработки приложений .NET для него. Текущая версия, 9.7, была выпущена в июне 2009 года.

  • Поддержка драйверов и API практически для любого языка программирования Windows и среды IDE, включая расширения .NET и Visual Studio.
  • Беззатратный, готовый к выпуску механизм базы данных (Express-C), который не имеет ограничения по размеру базы данных и является наименее ограниченным по сравнению с Oracle Express и SQL Server Express
  • Самонастраивающийся механизм базы данных для Windows, который автоматически обрабатывает размеры нескольких буферов памяти, которые имеют решающее значение для хорошей производительности.
  • Поддержка Rock-solid для XML как родного типа данных, обрабатываемая собственным специализированным механизмом запросов, оптимизированным для иерархического характера XML. Запросы могут обращаться к любой комбинации XML и табличных данных с любой комбинацией выражений SQL и XQuery.

Ответ 3

Если вы являетесь магазином .NET и используете небольшую базу данных (например, Sql Server Express) или имеете деньги для полного SQL Server, используйте ее. SQL Server будет работать лучше, чем PostgreSQL для большинства действий, и примерно такой же, как DB2.

PostgreSQL - это фантастика, если вам нужна поддержка нескольких платформ, Linux-based или нужен бесплатный продукт, а не Microsoft.

Я не использовал DB2 в течение более 10 лет, кроме запуска собственного теста производительности и других баз данных (где он был примерно таким же для транзакционной базы данных, как Oracle/SQL Server, где были лучше MySQL, PostgreSQL и т.д.).

Ответ 4

Если вы находитесь в магазине .net с SQL Server.

Использование любой другой платформы базы данных потребует от Windows отличных от нее. В Windows SQL Server король просто потому, что MS владеет как ОС, так и SQL Server (например, Oracle/Red Hat).

Ответ 5

Избегайте микрософт, как чума. Всегда нажимайте, чтобы использовать PostgreSql даже в окнах, чтобы лучше поддерживать разработки приложений, например. Java/Python и по-прежнему имеет хорошую поддержку в .NET. Кроме того, конечно, совершенно бесплатно, что, учитывая текущие лицензионные сборы для SQL Server, ничто не нужно обнюхивать, даже если вы многомиллионная компания.

За 1 лицензию SQL Server вы собираетесь сэкономить 30 000 фунтов стерлингов (скажем, 40 000 долларов США) или более - купите лучшее оборудование для запуска Postgres и по-прежнему получите чистую выгоду.

Что касается производительности, действительно, если это такая серьезная проблема, мы не должны использовать DB2, SQL Server или Postgres. Разница между тремя незначительна для их целей дизайна.

Редактирование. В .NET-интеграции на самом деле это действительно плохо в SQL Server, но у него есть больше возможностей, чем Postgres/DB2, но это не очень выгодно для SSIS или хранимых процедур. Я мог видеть основной вариант использования в моей работе как доступ к классам и функциям из CLR.dll, но затем вы реализуете логику в базе данных, которая может или не может быть хорошей идеей для вас.