#db2 #rdbms
#db2 #СУБД
Вопрос:
В настоящее время мои проекты ориентированы на SQL Server (с небольшим добавлением Postgres и MongoDB для развлечения). Недавний проект, включающий некоторую конфигурацию в Oracle, напомнил мне о сложности внедрения экземпляров Oracle RDBMS и управления ими по сравнению с вышеупомянутыми.
Много лет назад, имея дело с DB2 на OS / 2, я решил загрузить пробную версию и установить ее на CentOS для сравнения. Это была довольно быстрая и простая реализация, включающая документы и образцы данных.
Отмечая, что DB2 LUW, похоже, уделяется относительно мало внимания, мне интересно, почему? В определенных версиях это конкурентоспособная цена, и по многим показателям, обладает высокой производительностью и масштабируемостью.
Итак, мне интересно узнать, используете ли вы DB2 Express (-C), WSE или EE в Linux или Windows, не могли бы вы рассказать, почему (если это выбранная вами база данных)?
Комментарии:
1. DB2 LUW = DB2 для Linux, Unix и Windows
Ответ №1:
Я работаю с DB2 для LUW по всему спектру: от high end Enterprise Server Edition на крупных предприятиях до DB2 Express-C для малого и среднего бизнеса.
На мой взгляд, DB2 Express-C абсолютно великолепен для рынка SMB. Практически нет функциональности, которая могла бы понадобиться вам как SMB, которая не существует в Express-C, и все основные технологии из более дорогих выпусков DB2 присутствуют, включая pureXML (который я широко использую) и (с поддержкой Express-C по цене 3 тыс. долларов за сервер) полную поддержку HADR.
Вещи, которых нет в Express-C, это —
Поддержка совместимости с Oracle (возможность запуска Oracle PL / SQL вместо стандартного SQL / PL DB2): не проблема, если вы не планируете перенос существующего приложения Oracle. Обратите внимание, что многие функции, лежащие в основе этого, доступны, включая такие вещи, как ассоциативные массивы, о которых вы упоминали. Глубокое сжатие: обнаруженное мной сжатие DB2 может сэкономить до 70% дискового пространства в DB2 ESE. Но малые и средние предприятия, как правило, не располагают таким объемом данных, который оправдал бы дополнительную стоимость лицензии на сжатие, даже если бы вы могли ее купить (речь идет о многих терабайтах хранилища, прежде чем оно станет полезным при текущей цене). Однако вам мешает использовать это сжатие только то, что вы не можете купить лицензию на него. Некоторые возможности разделения также недоступны в Express-C : но опять же, разделение — это то, что действительно необходимо только самым конечным клиентам. Фактически, по крайней мере, один тип разделения (DPF) даже недоступен с ESE: вам нужно купить InfoSphere Warehouse (то, что раньше называлось DB2 Data Warehousing Edition), чтобы получить это в наши дни.
Если вы хотите их, вам придется купить DB2 ESE (с существенной надбавкой к цене).
В наши дни есть еще один случай, когда я бы порекомендовал что-то другое, кроме Express-C, и это если вы хотите ультрамасштабируемость pureScale. Это дополнительная опция в DB2 ESE, но фактически она входит в комплект поставки (ограничена только общим количеством процессоров, которые вы можете иметь в кластере на WSE).
В любом случае, суть в том, что в наши дни я бы рекомендовал DB2 (и особенно Express-C) практически всем. Я думаю, причина, по которой вы больше не слышите об этом, заключается в том, что IBM просто плохо занимается ее маркетингом.
HTH
Фил Нельсон (teamdba@scotdb.com )
Ответ №2:
Мы используем DB2 LUW на работе (хотя, я говорю только для себя, а не для работы). Мне это нравится:
- Это быстро и имеет удобные инструменты, которые помогут вам ускорить выполнение ваших запросов.
- В ней есть средства для обеспечения высокой доступности (HADR).
- У него есть поддержка XML, которая может быть вам полезна, а может и нет (но в настоящее время мы не используем ее на работе).
- Его процедурный язык прост в использовании (хотя ему и не хватает функций, особенно для версий до 9.7).
- У него отличная документация.
(Решение использовать DB2 в work было принято задолго до того, как я начал там работать, поэтому я не могу комментировать обоснование work для его выбора.)
Комментарии:
1. Меня интересует версия 9.7. Не могли бы вы подробнее рассказать о том, каких функций PL не хватает? Спасибо!
2. 9.7 добавляет полезные функции, такие как ассоциативные массивы (которые, вероятно, реализованы в виде деревьев, поскольку ключи всегда хранятся в порядке возрастания), логические переменные (но у вас все равно не может быть логических столбцов, в отличие от PostgreSQL), скомпилированные (не встроенные) функции и т.д. Я нахожу PL 9.7 достаточно удобным. в 9.5 и ниже отсутствуют по крайней мере те аспекты, которые я только что описал.
3. (В DB2 встроенный PL-код намного более ограничен, чем скомпилированный PL-код, с точки зрения функциональности, к которой он может получить доступ. До версии 9.7 функции могли быть только встроенными, а не скомпилированными, и вам приходилось использовать процедуры для использования дополнительной функциональности, предоставляемой в режиме компиляции.)
4. В целом, я думаю, если вы используете 9.7 или более позднюю версию, вы найдете PL достаточно простым в использовании. Я не написал много PL за свою карьеру, но я основываю приведенные выше комментарии на своем опыте написания реализации Jaro-Winkler в базе данных, которую было не слишком сложно реализовать в 9.7, но было бы практически невозможно сделать в 9.5.
Ответ №3:
Единственное, что я хотел бы добавить к превосходному ответу Фила Нельсона, это то, что DB2 Express-C в настоящее время уникален среди бесплатных коммерческих продуктов СУБД тем, что он не ограничивает размер базы данных. Объем новейших версий бесплатных движков баз данных Microsoft и Oracle составляет около 10-11 ГБ.