我们正在升级我们的系统以支持集群和自动故障转移功能。我们的业务在 SQL Server Express 上运行 .NET 4 应用程序、Web 应用程序和服务。我们可以升级到 SQL Server Standard,但成本促使我们考虑其他选择。将我们的 .NET 数据层与 ODP.NET 集成是合法的选择吗?搜索后,我看到一两个有倾向性的否定陈述(即),但似乎人们无论如何都在这样做。我们将失去 Visual Studio IDE 中的哪些开发功能?谢谢你的帮助!
3 回答
好吧,我现在已经在 Oracle 和 MS SQL Server 工作了 20 多年,做过很多项目。一些项目现在已经运行了 10 多年,包括所有的更新、维护等。
我的快速回答是:继续使用 MS SQL Server。如果您有非常好的技术理由,或者如果您正在计划一个非常庞大的数据库,并且如果您有足够的人员来处理所有管理,请只使用 Oracle。
主要原因是 SQL Server 更容易维护;并且它还极大地集成到了微软环境中。
相比之下,甲骨文的学习曲线陡峭。Oracle 的处理比 MS SQL Server 更“手动”。嗯,这也是一件好事,因为每个小细节你都在掌控之中,但这也意味着你需要学习很多;或者你需要付钱给专家。而且要找到真正知道该做什么的人也不是那么容易。
我真的很喜欢这两个系统,但根据经验,我通常建议使用 MS SQL Server。
多年来,我一直将 .net 与 Oracle 一起使用,并且只要有可用的选项,我就不再使用它。
如果您所有的数据库代码都在存储过程中,并且您通过代码隐藏或库调用它并且您使用 ansi sql,那么从 ms sql 到 oracle 的迁移将相当轻松。
如果您使用 TableAdapters,他们会将您输入的任何 sql 重写为 oldschool oracle 8 语法,例如 table1、table2、table3,然后有一个很大的 where 子句来执行连接条件。还有一些奇怪的错误,有时在 SQL Developer 中运行良好的 sql 无法在 TableAdapter 中工作。
如果您使用实体框架迁移应该很容易,但是 MS SQL 驱动程序比 Oracle 驱动程序要好得多。由于当前驱动程序的一些各种错误,我无法通过 oracle 中的 EF 进行一些查询。
如果您需要更多信息,请告诉我。
此外,如果成本是考虑迁移的主要原因,为什么不使用 mysql 呢?
由于您已经在使用 MS SQL,因此您必须习惯于它的工作方式,无论是实体框架还是任何其他数据执行。是的,在场外,微软为其提供了非常高的许可费率。但是,如果您想移动到任何其他数据库,那是完全可以的。我个人使用过 MS SQL 和 MySQL。最初您可能会遇到一些与语法相关的问题,但请记住,获取和保存数据的逻辑保持不变。此外,它还提供了一个好处,即您必须学习一门新语言,而且花费更少的钱。