【问题标题】:Benefits of switching from SQL Server to Versant OODB从 SQL Server 切换到 Versant OODB 的好处
【发布时间】:2011-03-17 02:23:37
【问题描述】:

从 SQL Server 2008 切换到 Versant OODB 可以为公司(不仅是开发人员)带来哪些好处(如果有的话)?

有关项目的更多信息和有助于回答的事实(如果您需要更多信息,请告诉我):

  • 非常小的团队,几乎从未使用过 OODB。
  • 项目使用 NHibernate 2。
  • 大约 75% 的测试覆盖率。
  • ASP.NET MVC 应用程序。

在这个阶段,由于以下几点(大多数与 db4o 相关,而不是 Versant 主流 OODB),我无法证明切换的合理性:

  • 与有一堆“经理”、分析器、集成/迁移工具等的 RDBMS 世界相比,工具非常糟糕;
  • 据我观察,文档非常基础,并且与 Java 混为一谈;
  • 与 RDBMS 相比,网络上的资源并不多;
  • 切换到其他数据库可能会出现问题(相对于 RDBMS);
  • 开发人员和 IT 团队的学习曲线;
  • 额外的许可费用;
  • 额外的维护费用;
  • 未与 MSDeployment 集成(包括自动备份、MSBuild、打包等);

【问题讨论】:

  • 呃……切换有什么好处?为什么对转换感兴趣? (这些不是不言自明的)
  • 切换到 OODB 的主要好处是通过消除我们都厌倦的对象关系阻抗不匹配来节省开发时间。

标签: c# .net sql-server database oodb


【解决方案1】:

取决于您的对象模型。如果您正在处理域中具有复杂层次关系的深层对象图,则从 SQL Server 2008 切换到 Versant ODB 将大大受益。如果您正在处理平面对象,请坚持使用关系引擎。 请查看 www.polepos.org 中的 c/s 结果: http://polepos.sourceforge.net/results/PolePositionClientServer.pdf

【讨论】:

    【解决方案2】:

    这是一个从 SQL Server 2005 切换到 Versant 的真实用户的 cmets:

    以下是我和我的同事对 VOD.Net 的反馈。

    我将我的想法归类为利弊

    优点:(一句话:速度)

    • 数据库引擎的数据读写速度很快,从我们所做的来看,它比 SQL Server 2005 快了大约 5 到 10 倍
    • 与标准数据访问层技术相比,它减少了执行相同操作所需的代码量
    • 还可以缩短开发新功能的时间
    • 它创建了一个严格的对象结构并促进数据完整性
    • 很容易将数据导入到 VOD 中

    缺点:(一句话:需要故障排除技能)

    • 我们的主要缺点是管理工具的可用性(管理控制台和对象检查器)
    • 按钮/链接对它们的作用不太明确,我们通常会在尝试使用它时弄清楚
    • Versant 编译/数据库更新错误不够明确,我们几乎不知道是什么 类导致错误但不是原因,所以我们需要自己调试。
    • 使用“验证数据库”菜单选项无法工作,并且会显示错误(取决于时间)
    • 应用迁移
    • 迁移 DAL 模式应用程序时,如果您尝试为 UI 保留相同的代码,则需要很长时间才能使其与 VOD 一起使用

    在简历中,对于具有高级开发人员技能和复杂/大数据结构的企业,我建议使用 VOD.Net。与迁移现有应用程序相比,创建全新的应用程序肯定更快。对象检查器需要重新设计以更加用户友好。

    我们通过提供 LINQpad 支持解决了一些 Object Inspector 问题。我认为你应该根据技术优势而不是任何情绪化的讨论来决定切换。此外,Versant 是 Microsoft 的合作伙伴,无论是否具有良好的 OO 技能 Versant 的人都有很多机会。

    【讨论】:

      【解决方案3】:

      你忘了....它可能对我来说要快得多(但取决于你的模型。如果你有简单的模型,我建议坚持使用 RDB )。

      如果您有多对任意、递归关系、嵌套子图等......那么 if 会快得多。

      当然,它也可以在更少的硬件上运行。与 IBM 的研究表明,您将在中间层节省大约 50% 的 CPU(例如,所有类型转换都发生在 RDB 的网络服务器)。

      另外,您不需要数据库专家 .. 如果您是 OO 专家,那么您已经具备技能...尤其是如果您了解 Hibernate/nHibernate,因为 Hibernate 中的对象生命周期管理概念和ORM空间基本上是从OODB世界劫持到RDB阵营的。

      此外,您可以在开发周期中更快地进行迭代,而无需经常去找 DBA 并要求更新架构。

      ....RDB 最终会走上大型机的道路。仍然存在,但未用于新项目。那些 Cobalt 程序员当时也不相信......所以不要理会所有的反对者。

      【讨论】:

      • “RDB 终将走大型机的道路”。您的意思是在提供可靠服务的情况下闲逛数十年?
      【解决方案4】:

      如果你想切换,那么就这样做。这是你唯一的“加”点。

      “摆脱我们都厌倦的对象关系阻抗不匹配。”

      您已经列出了大部分负面因素。我再补充两个:

      • 工作如何要求 Versant OODB 技能?
      • 有多少开发人员将拥有 Versant OODB 技能?

      【讨论】:

        【解决方案5】:

        在披露中,我在 Versant 的销售部门工作,为了评论您的问题,Versant 是一种商业产品,但与 SQL Server 一样,我们有类似的定价,社区版是免费的,但数据库大小有限制,标准版是每台服务器成本低,但允许的线程数量有限,企业版价格昂贵,但如果您需要可伸缩性和性能,则低于 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 的好处是易于开发、性能和能够以更少的服务器和存储资源来支持他们的需求。

        【讨论】:

        • 1.没有允许数据库商业使用的免费 Versant OODB 社区版(db4o 不一样)。如果我遗漏了什么,请提供链接? 2. Versant OODB 的成本很高,因为很多公司都在订阅中包含 SQLServer。 3. LINQ 忍不住要改变 OODBRDB。这将需要大量的重写。从您的客户那里看到您之前的回答:`创建全新的应用程序肯定比迁移现有应用程序更快`
        猜你喜欢
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 2018-07-17
        • 1970-01-01
        相关资源
        最近更新 更多