Преимущества перехода с SQL Server на Versant OODB - PullRequest
4 голосов
/ 17 марта 2011

Какие преимущества (если они есть) для компании (не только для разработчиков) я мог бы получить, перейдя с SQL Server 2008 на Versant OODB?

Дополнительная информация о проекте и факты, чтобы помочь с ответом (дайте мне знать, если вам нужно больше):

  • Очень маленькая команда, почти никогда не использовала OODB.
  • Проект использует NHibernate 2.
  • Около 75% тестового покрытия.
  • Приложение ASP.NET MVC.

На этом этапе я не смог оправдать переключение из-за следующих моментов (больше всего связанных с db4o, а не с универсальным OODB Versant):

  • набор инструментов довольно плох по сравнению с миром СУБД, где есть множество "менеджеров", профилировщиков, инструментов интеграции / миграции и других;
  • документация довольно проста из того, что я могу наблюдать, и сильно смешана с Java;
  • не так много ресурсов в сети по сравнению с RDBMS;
  • переключение на другие базы данных может быть проблематичным (в отличие от СУБД);
  • кривая обучения для разработчиков и ИТ-команды;
  • дополнительная стоимость лицензирования;
  • дополнительные расходы на техническое обслуживание;
  • нет интеграции с MSDeployment (включая автоматическое резервное копирование, MSBuild, упаковка и т. Д.);

Ответы [ 5 ]

7 голосов
/ 17 марта 2011

Зависит от вашей объектной модели. Если вы имеете дело с глубоким графом объектов в своем домене со сложными иерархическими отношениями, вы получите большую пользу, переключившись с SQL Server 2008 на Versant ODB. Если вы имеете дело с плоскими объектами, придерживайтесь реляционного движка. Пожалуйста, проверьте результаты c / s на www.polepos.org: http://polepos.sourceforge.net/results/PolePositionClientServer.pdf

6 голосов
/ 17 марта 2011

Вот комментарий реального пользователя, который перешел с SQL Server 2005 на Versant:

Вот отзывы от меня и моих коллег о VOD.Net.

Я сгруппировал свои идеи в плюсы и минусы

ПРОФИ: (одним словом: скорость)

  • Движок базы данных быстр для чтения и записи данных. По сравнению с тем, что мы сделали, он примерно в 5-10 раз быстрее, чем SQL Server 2005
  • Это сокращает объем кода, необходимого для выполнения тех же задач, что и стандартные технологии Data Access Layer
  • Это также сокращает время на разработку новых функций
  • Создает строгую структуру объектов и обеспечивает целостность данных.
  • Импорт данных в VOD прост

CONS: (одним словом: нужны навыки устранения неполадок)

  • Наш главный негативный момент касается удобства использования инструментов администрирования (Консоль администрирования и Инспектор объектов)
  • Кнопки / ссылки не совсем ясно о том, что они делают, мы обычно выясняем, когда мы пытаемся использовать его
  • Versant Compilation / Ошибки обновления базы данных недостаточно явные, мы едва знаем, что класс вызывает ошибку, но не причину, поэтому мы должны отладить сами.
  • Использование пункта меню «Проверка базы данных» может не работать и будет отображать ошибки (В зависимости от времени)
  • Миграция приложения
  • При переносе приложения-образца DAL долго работать с VOD, если вы пытаетесь сохранить тот же код для пользовательского интерфейса

В резюме я бы рекомендовал использовать VOD.Net для предприятий, имеющих навыки старших разработчиков и сложную / большую структуру данных. Определенно быстрее создать новое приложение, чем перенести существующее. Инспектор объектов нуждается в редизайне, чтобы сделать его более удобным для пользователя.

Мы обратились к некоторым проблемам инспектора объектов, предоставив поддержку LINQpad. Я думаю, что вы должны принять решение переключаться, основываясь на технических преимуществах, а не на какой-либо эмоциональной дискуссии. Кроме того, Versant является партнером Microsoft, и есть много возможностей для людей с хорошими навыками OO Versant или нет.

4 голосов
/ 17 марта 2011

Вы забыли .... Возможно, это будет намного быстрее (но это будет зависеть от вашей модели. Если у вас простая модель, я рекомендую просто придерживаться RDB).

Если у вас много-к-любому, рекурсивные отношения, вложенные подграфы и т. Д. ... тогда, если будет намного быстрее.

Конечно, он также будет работать на гораздо меньшем количестве оборудования. Исследования, проведенные в IBM, показывают, что вы сэкономите около 50% ЦП на своем среднем уровне (например, у вас на веб-серверах, где все переводы типов выполняются для RDB).

Кроме того, вам не нужен эксперт по базам данных ... если вы специалист по OO, то у вас уже есть набор навыков ... особенно если вы знаете Hibernate / nHibernate, потому что концепции управления жизненным циклом объектов из Hibernate и Пространство ORM было в основном похищено из мира OODB и перенесено в лагерь RDB.

Кроме того, вы можете выполнять итерации намного быстрее в своих циклах разработки, не прибегая к постоянному обращению к администратору базы данных и запрашивая обновления схемы.

.... RDB в конечном итоге пойдет по пути мэйнфрейма. Все еще вокруг, но не используется для новых проектов. Эти программисты на Кобальте в это время тоже не верили ... так что не беспокойтесь обо всех поговорках.

3 голосов
/ 17 марта 2011

Если вы хотите переключиться, сделайте это. Это ваш единственный плюс.

«избавиться от несоответствия объектно-реляционного импеданса, от которого мы все так устали».

Вы уже перечислили большинство негативов. Я добавлю еще два:

  • Как рабочие места могут когда-либо запрашивать навыки Versant OODB?
  • сколько разработчиков будет обладать навыками Versant OODB?
1 голос
/ 17 марта 2011

В раскрытии, я работаю в Versant в отделе продаж и, чтобы прокомментировать ваши вопросы, Versant является коммерческим продуктом, но, как и SQL Server, у нас аналогичная цена, Community Edition бесплатна с ограничениями по размеру базы данных, Standard Editionнебольшая стоимость на сервер, но ограниченное количество разрешенных потоков, и Enterprise Edition, которая стоит дорого, но дешевле, чем SQL Server или Oracle, если вам нужна масштабируемость и производительность.Кроме того, перейдя от nHibernate к LINQ, вы сможете использовать его в базе данных Versant, и в будущем, если вы захотите вернуться к SQL Server, вы можете сделать это довольно легко с помощью EF или LINQ TO SQL, поэтому это снизит вашириск в инфраструктуре базы данных.Это было бы точкой для Versant, а не для использования хранилища KVP NoSQL с проприетарным интерфейсом.Правда, документации намного меньше, чем в Relational, но на сайте www.odbms.org есть отличная информация и справочные материалы.Кривая обучения, если ваша команда хорошо владеет C #, должна быть довольно простой, и с точки зрения администрирования Versant является базой данных, поэтому изучение процедур резервного копирования и восстановления должно показаться знакомым.Все наши клиенты, C ++, Java или .Net, говорят, что преимущества Versant заключаются в простоте разработки, производительности и возможности удовлетворения их потребностей за счет меньшего количества ресурсов в серверах и хранилище.

...