代码之家  ›  专栏  ›  技术社区  ›  Regent

用于.NET项目的Oracle与SQL Server[已关闭]

  •  3
  • Regent  · 技术社区  · 14 年前

    我知道Oracle通常是一个很好的数据库引擎,但我认为与本机Microsoft SQL Server解决方案相比,.NET项目的部署太困难了。

    (我需要安装x32和x64位客户机组件,并为这两个组件配置TNS名称,另外还要安装对Oracle的分布式事务支持。不是说你需要注册到Oracle才能获得这些二进制文件。)

    不过,我还是看到了一些与Oracle合作的.NET项目。

    使用Oracle over SQL Server有哪些好处?在任何特定的场景中,它是唯一的选择?

    您会在.NET项目中使用Oracle吗?

    8 回复  |  直到 8 年前
        1
  •  8
  •   gbn    14 年前

    我将从这一点开始:选择DB引擎来提高性能对数十亿行的这一方面没有任何影响:归根结底是代码质量和数据库设计。有了数十亿行,您的存储/SAN/Network/BCP规划至关重要。

    从一个一般的容易部署和 支持 它将是SQL Server;这里没有缺点。

        2
  •  6
  •   Keith Adler    14 年前

    如果您只是在谈论数据库组件,那么毫无疑问,核心MS工具(vs、linq等)更适合与MS SQL堆栈进行互操作,但坦率地说,除了客户站点特有的功能之外,在这两个平台之间进行选择并没有真正的杀手锏。除非有必要,否则不应引入新平台;如果客户站点面向Oracle许可/操作技能集,则转到Oracle;如果客户站点面向MS SQL,则转到MS SQL。如果你说的是能够打开更大蠕虫病毒罐的BI工具,但底线是,除非绝对必要,否则不要引入新的核心技术。

        3
  •  5
  •   Jonathan Allen    14 年前

    我不会使用甲骨文有很多原因。

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

    你会注意到,我没有提到.NET的任何东西,这只是我在5-6年前处理Oracle/Java测试器时遇到的问题。

        4
  •  2
  •   softveda    14 年前

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

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

    但从性能角度看,甲骨文是一流的。在熟练的DBA手中,它的性能是高度可定制的,我强烈建议在开发团队中有一个Oracle专家(与生产DBA分开)。我们从来没有遇到过任何死锁问题,我在SQL Server和Oracle上经常听到,与SQL Server不同,Oracle可以很好地使用光标。

    至于安装/支持/备份,开发团队不参与,我们有DBA、SAN存储工程师等负责这些基础设施领域。所以我没什么好说的。

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

        5
  •  1
  •   rlb.usa    14 年前

    优点和缺点:

    • 所有MS SQL与Oracle的差异
    • .NET本机支持MS SQL,而不需要Oracle插件
    • 由于.NET本机支持MS SQL,因此通常启动起来更快、更容易。
    • 将MS SQL和.NET一起使用,通过拥有一个品牌简化了您的环境,您可以称自己为“Microsoft商店”。

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

        6
  •  0
  •   Craig    14 年前

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

        7
  •  0
  •   pramodned    8 年前

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

        8
  •  -1
  •   prabhats.net    14 年前

    如果我正在开发大型企业级OLTP应用程序,并且客户更倾向于使用Oracle,那么我会选择Oracle。我曾与之合作过的大多数金融机构传统上都使用Oracle作为后端,因为在SQL Server 2005之前,SQL被认为不适合用于高端企业级应用程序。SQL Server和.NET一起简化了您的环境。但现在,SQL也在与Oracle进行激烈的竞争,因为它拥有一系列新的竞争功能。另外,它提供了非常快速的上市时间解决方案,并且非常易于使用、管理和部署。

    在集群技术方面,我觉得Oracle有点超前。