【问题标题】:Oracle vs SQL Server for a .NET project [closed].NET项目的Oracle vs SQL Server [关闭]
【发布时间】:2011-03-10 18:51:51
【问题描述】:

我知道 Oracle 是一个总体上很好的数据库引擎,但与原生 Microsoft SQL 服务器解决方案相比,我认为 .NET 项目的部署太困难了。

(我需要同时安装 x32 位和 x64 位客户端组件并为它们配置 TNS 名称,以及为 Oracle 安装分布式事务支持。并不是说您需要向 Oracle 注册才能获得这些二进制文件。 )

我仍然看到了一些使用 Oracle 的 .NET 项目。

使用 Oracle 而不是 SQL Server 有哪些好处?任何特定情况下它是唯一的选择?

您会将 Oracle 用于您的 .NET 项目吗?

【问题讨论】:

  • 在开发方面,Oracle 9i+ 和 SQL Server 2005+ 是相对平等的:WITH 子句、递归/分层查询、分析/窗口/排名功能、物化视图...
  • 顺便说一句,它是“SQL Server”,而不是“MS SQL”

标签: .net sql-server oracle


【解决方案1】:

如果您纯粹是在谈论数据库组件,那么毫无疑问,核心 MS 工具(VS、LINQ 等)更适合与 MS SQL 堆栈进行互操作,但坦率地说,真的没有什么杀手锏的理由。这两个平台超出了客户站点特有的范围。除非必要,否则不应引入新平台;如果客户站点在运营中面向 Oracle 许可/技能集,则选择 Oracle;如果它面向 MS SQL,那就去 MS SQL。如果你说的是 BI 工具,它会打开更多的蠕虫,但除非绝对必要,否则尽量不要引入新的核心技术。

【讨论】:

    【解决方案2】:

    优点和缺点:

    • MS SQL 与 Oracle 的所有差异
    • .NET 原生支持 MS SQL,而需要 Oracle 插件
    • 由于 .NET 原生支持 MS SQL,因此通常更快、更容易上手
    • 同时使用 MS SQL 和 .NET 通过拥有一个品牌来简化您的环境,您可以称自己为“Microsoft Shop”

    我们刚刚从 MS SQL 切换到 MySQL,实际上,我们唯一的区别是 MS SQL 与 MySQL 数据类型,以及 MySQL 连接器的各种问题 - 它不如 MS SQL 完美,所以我们看到了许多神秘的错误消息从它开始。

    【讨论】:

    • 您可以获得非常快速的 Oracle 驱动程序。不幸的是,这意味着要与第 3 方供应商 DataDirect 打交道。
    • SQL Server 和 MySQL 之间还有很多区别 - MySQL 不支持自定义错误,视图支持非常有限(不支持物化视图),没有分析/排名/窗口功能,没有 WITH ( AKA CTE、AKA 子查询分解)子句。这些都是 Oracle 9i+ 所具备的...
    【解决方案3】:

    出于多种原因,我不会使用 Oracle。

    1. 安装很麻烦。
    2. 您需要编辑全局配置文件才能与服务器通信。
    3. 管理工具太糟糕了,你不得不购买像 Toad 这样的第三方 IDE。
    4. 他们的 SQL 版本确实很奇怪,例如将空字符串转换为 Null。
    5. 如果没有专门的管理员进行索引调整,Oracle 的性能非常糟糕。您不能像在 SQL Server 中那样欺骗和使用 IDE 推荐的索引。

    您会注意到我没有提到任何关于 .NET 的内容,这些只是我在大约 5-6 年前作为 Oracle/Java 测试人员处理它时遇到的问题。

    【讨论】:

    • +1 同意所有观点,除了 Toad 和其他一切一样糟糕(在某些方面更糟糕)。
    • 我不能说我曾经尝试过 Toad,我们没有预算。最后,我在 VB 中编写了自己的 SQL IDE,这样我就可以运行了。
    • +1,好点。如果不是那么慢,SQL Developer 可能会很好。
    【解决方案4】:

    我将从这个开始:选择数据库引擎以提高性能对数十亿行的这一方面没有影响:它归结为代码质量和数据库设计。拥有数十亿行,您的存储/SAN/网络/BCP 规划至关重要。

    从总体上易于部署和支持来看,它应该是 SQL Server;这里没有缺点。

    【讨论】:

      【解决方案5】:

      如果我正在开发大型企业级 OLTP 应用程序并且客户更倾向于使用 Oracle,我会选择 Oracle。与我合作过的大多数金融机构传统上都使用 Oracle 作为后端,因为在 SQL Server 2005 之前,SQL 并不是高端企业级应用程序的好选择。SQL Server 和 .NET 一起简化了您的环境。但现在 SQL 也凭借其所有新的竞争特性集与 Oracle 展开激烈竞争。此外,它提供了非常快速的上市解决方案,并且非常易于使用、管理和部署。

      在集群技术方面,我觉得 Oracle 稍微领先。

      【讨论】:

      • “SQL Server 没有多版本一致性模型”——显然,自 SQL Server 2005 以来,您从未使用过 SQL。从那时起,它就有了快照隔离形式的 MVCC。
      • 我认为这不是真的。我有两个朋友在信用合作社工作。一个使用 SQL Server,另一个使用 DB2。
      • 这个评估在十年前是正确的,在 2010 年充满了事实错误。
      • 对 SQL Server 的所有批评也适用于仍在银行业广泛使用的 Sybase。您关于锁定的 cmets 也适用于 DB2 UDB ibm.com/developerworks/data/library/techarticle/dm-0511bond Oracle 的 MVCC 在重负载时会减慢速度。我可以继续,但通常你是从无知中说出来的
      • 这是一个厚颜无耻的编辑,删除了我们跳到你身上的所有东西......
      【解决方案6】:

      我开发了一个复杂的 WCF/SOA 企业应用程序,在 Oracle 上作为数据层运行。 Oracle 是我们公司的标准,几乎没有机会改变它。在该数据库之上还有其他非.net 应用程序。从开发人员的角度来看,如果您想使用最新的 .Net 数据访问技术(如 LINQ、Entity Framework、RIA 服务等),Oracle 和 .Net 并不容易混合。Oracle 刚刚宣布将支持 EF,第一个测试版仅发布今年晚些时候。我们使用 ODP.Net 和 StoredProcedures 对 DAL 进行手工编码,这在当今时代感觉很乏味。

      我也不喜欢 Oracle 的一些东西,比如表/SP 名称的 32 个字符限制,默认情况下名称都是大写的。此外,Oracle 查询有时可能需要只有 Oracle 专家知道的提示。与 SQL Server 分析器相比,分析很难。

      但从性能的角度来看,Oracle 是一流的。在熟练的 DBA 手中,它可以高度自定义性能,我强烈建议在开发团队中拥有一名 Oracle 专家(与生产 DBA 分开)。我们从来没有遇到过我在 SQL Server 上一直听到的任何死锁问题,而且 Oracle 与 SQL Server 不同,可以很好地与 Cursors 配合使用。

      至于安装/支持/备份,开发团队不参与,我们有 DBA、SAN 存储工程师等来照顾这些基础设施区域。所以我不能说太多。

      总的来说,如果您对 Oracle 没有预先存在的依赖关系,请选择 SQL Server 进行 .Net 开发。

      【讨论】:

      • 非常平衡的答案。如果您的商店拥有 Oracle 技能,请利用它们
      【解决方案7】:

      从 .NET 的角度来看,我认为 Oracle 没有任何好处。与 SQL Server 的集成要好得多。但是使用 Oracle 数据库可能有一些优势,但它们实际上与 .NET 无关。

      【讨论】:

        【解决方案8】:

        基本问题是当您在开发人员的电脑上安装 oracle 时,所有支持文件都已安装,因此 oracle.net 连接工作正常。但是在客户端 PC 上的部署(创建一次单击设置)时,会出现连接问题。此问题的原因是 oracle Dll 在 windows GAC 中不可用。为了解决这个问题,您需要从 oracle 的网站(oracle 数据访问组件)为您正在使用的 oracle DB 版本下载 ODAC,并且需要在安装应用程序之前将其安装在客户端 PC 中 ODAC 可用于 32 位和 64 位。 确保在安装 ODAC 之前清除临时文件夹。一旦安装了 ODAC,oracle 与 .net 的连接将毫无问题地工作。

        【讨论】:

          猜你喜欢
          • 2010-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-11
          • 1970-01-01
          • 1970-01-01
          • 2015-04-08
          • 2013-08-23
          相关资源
          最近更新 更多