将SQL Server查询转换为MySQL需要多长时间?

问题描述:

我的任务是估计从SQL Server使用MySQL重写.NET应用程序的数据访问层所需的时间。不管这个事情是否会发生,它都没有讨论......只需要多长时间。将SQL Server查询转换为MySQL需要多长时间?

我估计了所有的工作,除了将SQL Server中的存储过程转换为MySQL查询。数据模型基本上是相同的(通过表格相同或通过查询表示原始模式),但在MySQL中。我有大约100个存储过程,其中大部分都是数据读取,并且会在DAL周围包装体面的单元测试,以便我们可以看到事情何时运行/中断。

所以问题是在SQL的两种方言之间转换需要多少工作(从广义上说)?一般来说,它往往是微不足道的工作,而且主要是自动查找和替换?或者是否有大量的典型查询需要手动调整?我要求就这项任务的规模提供一点总体指导。

感谢您的任何援助。

+0

一个很好的问题被问到......这是一个现行的系统吗?是的系统已投入生产并不断更新/维护约一年半。 – 2010-01-15 13:48:17

没有正确的答案。这取决于。如果您拥有MySQL和MSSQL的SQL摇滚星,那么他可能会在一两天内移植所有100个存储过程,另一个程序员可能需要2到3周的时间。

SQL被认为是理想世界的标准,但我们并不生活在理想世界中。

http://www.joelonsoftware.com/articles/fog0000000245.html

+0

+1尼斯链接。我估计它在一个摇滚明星的2周之内,一个正常人6个月的时间,以及程序员得分列表的下半部分从未得到它 – Andomar 2010-01-15 13:13:49

在最坏的情况下,你很可能需要通过线通过他们全力以赴线。你必须做到这一点,但大多数我猜它只是读它以确保它与mysql兼容。偶尔也许会改变一些东西(主要在查询中)。

这是一个很难回答的问题,因为它取决于这么多。程序有多复杂?它们可以100%兼容MySQL,或者它们可以100%不兼容。你只需要做出自己的评估,真的。如果你熟悉的MySQL虽然

应该不会超过一天。

这将取决于,但可能你就会有一行一行地爬行通过公平量。如果SP只是简单的选择,那么这可能相当快,但即使是一些你认为会很直接的事情也需要手动改变。例如。 MSSQL中的select top 20 [column] from [table]在MySQL中变成select [column] from [table] limit 0,20。这甚至可能意味着处理诸如分页之类的任务的更高级代码中的更改 - 您不能假定您只需要更改SQL即可使其工作。

如果存在更复杂的存储过程或任何使用T-SQL函数的应用程序,那么您可能需要很长时间并且通常不令人满意。

我不认为这是一个正确的答案。

多少东西使用的东西,是特定于mssql的,是它的任何兼容?不确定。 如果他们是简单的选择,你不应该有很多的问题,但如果你做的不止,你需要做一个逐行分析说实话,

多久了原始的开发工作?或者是在多年的时间内完成的?我个人会拒绝任何使用剪切和粘贴的诱惑,我会评估你有什么,然后从头开始写在MySQL中,希望你的数据库完整记录(微笑)如果不是那么我不羡慕这个任务。

这是一个当前正在运行的系统吗?还是正在开发中?你不要说......不要忘记整理和unicode数据这样的东西,它不仅仅是一个带有sprocs的例子,如果它的数据库已经存在的话。

接下来要回答的问题是,当前结构实际上是您想要向前移动还是可以移动到休眠状态,然后存在性能问题。

直接回答你的问题取决于你在说什么的人和复杂性..但它绝对是一个需要非常小心的任务。特别是如果这是一个实时系统

我最近不得不将Oracle数据库移到MSSQL服务器。我花了大约3天的时间来阅读源代码,并在必要时进行调整。查询的数量与您的项目大致相同,但这些查询几乎都是不重要的(选择,插入,更新,删除)。一个存储过程通常在里面有多个单独的查询,所以一个工作周MAY是现实的。