Преимущества перехода с SQL Server на Versant OODB
Какие преимущества (если они есть) для компании (не только для разработчиков) я мог бы получить, перейдя с SQL Server 2008 на Versant OODB?
Больше информации о проекте и факты, чтобы помочь с ответом (дайте мне знать, если вам нужно больше):
- Очень маленькая команда, почти никогда не пользовалась OODB.
- Проект использует NHibernate 2.
- Около 75% тестового покрытия.
- ASP.NET MVC приложение.
На этом этапе я не смог оправдать переключение из-за следующих моментов (больше всего связанных с db4o, а не с универсальным OODB Versant):
- набор инструментов довольно плох по сравнению с миром СУБД, где есть множество "менеджеров", профилировщиков, инструментов интеграции / миграции и других;
- документация довольно проста в том, что я могу наблюдать, и тесно связана с Java;
- не так много ресурсов в сети по сравнению с RDBMS;
- переключение на другие базы данных может быть проблематичным (в отличие от RDBMS);
- кривая обучения для разработчиков и ИТ-команды;
- дополнительная стоимость лицензирования;
- дополнительные расходы на техническое обслуживание;
- отсутствие интеграции с MSDeployment (включая автоматическое резервное копирование, MSBuild, упаковку и т. д.);
5 ответов
Вот комментарии реального пользователя, который перешел с SQL Server 2005 на Versant:
Вот отзывы от меня и моих коллег о VOD.Net.
Я сгруппировал свои идеи в плюсы и минусы
ПРОФИ: (одним словом: скорость)
- Ядро базы данных быстрое для чтения и записи данных, благодаря тому, что мы сделали, примерно в 5-10 раз быстрее, чем SQL Server 2005
- Это уменьшает объем кода, необходимого для того же, что и стандарты технологий Data Access Layer.
- Это также сократит время на разработку новой функциональности
- Это создает строгую структуру объектов и способствует целостности данных.
- Импорт данных в VOD прост
Минусы: (одним словом: нужны навыки устранения неполадок)
- Наш главный негативный момент касается удобства использования инструментов администрирования (Консоль администрирования и Инспектор объектов).
- Кнопки / ссылки не совсем ясно о том, что они делают, мы обычно выясняем, когда мы пытаемся использовать его
- Ошибки версальной компиляции / обновления базы данных недостаточно ясны, мы едва знаем, какой класс является причиной ошибки, но не причина, поэтому нам нужно отладить самим.
- Использование пункта меню Verify Database не могло работать и будет отображать ошибки (в зависимости от времени)
- Миграция приложений
- При миграции шаблонного приложения DAL долго работать с VOD, если вы пытаетесь сохранить тот же код для пользовательского интерфейса
В резюме я бы рекомендовал использовать VOD.Net для предприятий, имеющих навыки старших разработчиков и сложную / большую структуру данных. Определенно быстрее создание нового приложения, чем миграция существующего приложения. Инспектор объектов нуждается в редизайне, чтобы сделать его более удобным для пользователя.
Мы обратились к некоторым проблемам инспектора объектов, предоставив поддержку LINQpad. Я думаю, что вы должны принять решение переключаться, основываясь на технических преимуществах, а не на какой-либо эмоциональной дискуссии. Кроме того, Versant является партнером Microsoft, и есть много возможностей для людей с хорошими навыками OO Versant или нет.
Зависит от вас объектная модель. Если вы имеете дело с глубоким графом объектов в своем домене со сложными иерархическими отношениями, вы получите большую пользу, переключившись с SQL Server 2008 на Versant ODB. Если вы имеете дело с плоскими объектами, придерживайтесь реляционного движка. Пожалуйста, проверьте результаты c / s на www.polepos.org: http://polepos.sourceforge.net/results/PolePositionClientServer.pdf
Вы забыли.... Возможно, это будет намного быстрее (но это будет зависеть от вашей модели. Если у вас простая модель, я рекомендую просто придерживаться RDB).
Если у вас много-к-любому, рекурсивные отношения, вложенные подграфы и т. Д.... тогда, если будет намного быстрее.
Конечно, он также будет работать на гораздо меньшем количестве оборудования. Исследования, проведенные в IBM, показывают, что вы сэкономите около 50% ЦП на своем среднем уровне (например, у вас на веб-серверах, где все переводы типов происходят для RDB).
Кроме того, вам не нужен эксперт по базам данных... если вы специалист по OO, то у вас уже есть набор навыков... особенно если вы знаете Hibernate/nHibernate, потому что концепции управления жизненным циклом объектов из Hibernate и пространства ORM были в основном угнанный из мира OODB и перенесенный в лагерь RDB.
Кроме того, вы можете выполнять итерации намного быстрее в своих циклах разработки без необходимости постоянно обращаться к администратору базы данных и запрашивать обновления схемы.
.... RDB в конечном итоге пойдет по пути мейнфрейма. Все еще вокруг, но не используется для новых проектов. Те программисты на Кобальте в это время тоже не верили... так что не беспокойтесь обо всех поговорках.
Если вы хотите переключиться, сделайте это. Это ваш единственный плюс.
"избавиться от несоответствия объектно-реляционного импеданса, от которого мы все так устали".
Вы перечислили большинство негативов уже. Я добавлю еще два:
- Как рабочие места могут когда-либо просить навыки Versant OODB?
- у скольких разработчиков будут навыки Versant OODB?
Что касается раскрытия информации, я работаю в Versant in Sales и, комментируя ваши вопросы, 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 заключаются в простоте разработки, производительности и возможности удовлетворения их потребностей за счет меньшего количества ресурсов на серверах и в хранилище.