2010-01-15 126 views
3

我的任務是估計從SQL Server使用MySQL重寫.NET應用程序的數據訪問層所需的時間。不管這個事情是否會發生,它都沒有討論......只需要多長時間。將SQL Server查詢轉換爲MySQL需要多長時間?

我估計了所有的工作,除了將SQL Server中的存儲過程轉換爲MySQL查詢。數據模型基本上是相同的(通過表格相同或通過查詢表示原始模式),但在MySQL中。我有大約100個存儲過程,其中大部分都是數據讀取,並且會在DAL周圍包裝體面的單元測試,以便我們可以看到事情何時運行/中斷。

所以問題是在SQL的兩種方言之間轉換需要多少工作(從廣義上說)?一般來說,它往往是微不足道的工作,而且主要是自動查找和替換?或者是否有大量的典型查詢需要手動調整?我要求就這項任務的規模提供一點總體指導。

感謝您的任何援助。

+0

一個很好的問題被問到......這是一個現行的系統嗎?是的系統已投入生產並不斷更新/維護約一年半。 – 2010-01-15 13:48:17

回答

2

沒有正確的答案。這取決於。如果您擁有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

0

在最壞的情況下,你很可能需要通過線通過他們全力以赴線。你必須做到這一點,但大多數我猜它只是讀它以確保它與mysql兼容。偶爾也許會改變一些東西(主要在查詢中)。

這是一個很難回答的問題,因爲它取決於這麼多。程序有多複雜?它們可以100%兼容MySQL,或者它們可以100%不兼容。你只需要做出自己的評估,真的。如果你熟悉的MySQL雖然

應該不會超過一天。

0

這將取決於,但可能你就會有一行一行地爬行通過公平量。如果SP只是簡單的選擇,那麼這可能相當快,但即使是一些你認爲會很直接的事情也需要手動改變。例如。 MSSQL中的select top 20 [column] from [table]在MySQL中變成select [column] from [table] limit 0,20。這甚至可能意味着處理諸如分頁之類的任務的更高級代碼中的更改 - 您不能假定您只需要更改SQL即可使其工作。

如果存在更復雜的存儲過程或任何使用T-SQL函數的應用程序,那麼您可能需要很長時間並且通常不令人滿意。

0

我不認爲這是一個正確的答案。

多少東西使用的東西,是特定於mssql的,是它的任何兼容?不確定。 如果他們是簡單的選擇,你不應該有很多的問題,但如果你做的不止,你需要做一個逐行分析說實話,

多久了原始的開發工作?或者是在多年的時間內完成的?我個人會拒絕任何使用剪切和粘貼的誘惑,我會評估你有什麼,然後從頭開始寫在MySQL中,希望你的數據庫完整記錄(微笑)如果不是那麼我不羨慕這個任務。

這是一個當前正在運行的系統嗎?還是正在開發中?你不要說......不要忘記整理和unicode數據這樣的東西,它不僅僅是一個帶有sprocs的例子,如果它的數據庫已經存在的話。

接下來要回答的問題是,當前結構實際上是您想要向前移動還是可以移動到休眠狀態,然後存在性能問題。

直接回答你的問題取決於你在說什麼的人和複雜性..但它絕對是一個需要非常小心的任務。特別是如果這是一個實時系統

0

我最近不得不將Oracle數據庫移到MSSQL服務器。我花了大約3天的時間來閱讀源代碼,並在必要時進行調整。查詢的數量與您的項目大致相同,但這些查詢幾乎都是不重要的(選擇,插入,更新,刪除)。一個存儲過程通常在裏面有多個單獨的查詢,所以一個工作周MAY是現實的。