2009-09-03 3 views
15

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

ответ

5

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

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

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

2

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

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

+3

Возможно, Oracle/Sun/Solaris (программное обеспечение/аппаратное обеспечение/ОС), но не Oracle/RedHat, Oracle не владеет RedHat. –

+0

@Pascal Thivent: в то время, когда я писал, Oracle не владел Sun. И Oracle предпочла Linux http://www.orafaq.com/wiki/Linux. – gbn

+2

Тот факт, что SQL-сервер работает только в Windows, не означает, что он лучше всего подходит для этой ОС. Взгляните на TPC, чтобы увидеть лучшие результаты, и мы можем увидеть некоторые Oracle и DB2 поверх Windows. В то же время Oracle может работать хорошо в AIX, поэтому ваш критерий не является убедительным. http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0 – AngocA

8

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

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

Фред: Мои клиенты ищут машину с более чем 2 ГБ оперативной памяти. Я думаю, что это барьер с существующим выпуском DB2-Express C? Во-вторых, помощь DB2 в сообществах происходит не так быстро, как SQL Server и Oracle. – RKh

+0

DB2 Express-C может работать на серверах с объемом памяти более 2 ГБ, но экземпляр DB2 сможет использовать до 2 ГБ доступной оперативной памяти. Этот предел может быть удвоен путем обновления до FTL, а также позволяет использовать большее количество ядер процессора и репликации в локальную или удаленную базу данных DB2. DB2 имеет процветающее сообщество в нескольких областях, включая список рассылки DB2-L на IDUG.org и презентации предыдущих технических конференций. IBM developerWorks - еще один отличный ресурс для изучения конкретных функций, которые руководство не может полностью объяснить. –

+0

Обратите внимание на возможность использования .NET-подпрограмм в DB2 LUW, и я отвечу на ваш ответ. –

16

Я работаю в очень большой организации, которая использует 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-сервер.

+0

Добавьте к этому обсуждение - управление DB2 - это королевский PITA (и я не имею в виду средиземноморский лепешка) по сравнению с SQLServer. Сообщения об ошибках SQLServer ясны, и операции просты в выполнении. Для обновления тестовой среды из резервной копии требуется шесть щелчков мыши, по сравнению с навигацией по тайному синтаксису db2 restore и db2 Rollforward. Не забудьте подсчитать текущую стоимость людей для управления базами данных –

2

Избегайте микрософт, как чума. Всегда нажимайте, чтобы использовать 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, но затем вы реализуете логику в базе данных, которая может быть или не быть хорошей идеей для вас.

+1

Действительно не согласен с интеграцией .Net. Я использую аналитические (рисковые) функции CLR в db, которые занимают 2 секунды, чтобы найти результаты более чем на 10 миллионов строк. Выполнение этого в tsql или вне SQL займет от нескольких минут до нескольких часов. Для вычислительно интенсивных функций увеличение производительности .net внутри sql огромно. Для большой аналитики данных SQL я считаю лучшим. – gjvdkamp

Смежные вопросы