3

私は、.NET アプリケーションのデータ アクセス層を SQL Server から MySQL に書き換えるのにかかる時間を見積もることを任されました。これが起こるかどうかは議論の余地がありません...どれくらいの時間がかかりますか.

SQL Server のストアド プロシージャを MySQL クエリに変換することを除いて、すべての作業を見積もりました。データ モデルは基本的に同じになります (テーブルが同じであるか、元のスキーマを示唆するクエリによる) が、MySQL 内にあります。私は約 100 のストアド プロシージャを持っています。それらのほとんどはデータの読み取りであり、適切な単体テストが DAL にラップされているため、いつ機能するか/壊れるかを確認できます。

問題は、SQL の 2 つの方言の間で変換するのに (大まかに言って) どれだけの作業が必要かということです。一般的に、それは些細な作業である傾向があり、ほとんどが検索と置換で自動化されていますか? それとも、多数の典型的なクエリを手動で調整する必要があるものですか? タスクの規模に関する一般的なガイダンスを少しお願いします。

ご協力ありがとうございます。

4

5 に答える 5

2

正解はありません。場合によります。MySQL と MSSQL の SQL ロックスターを持っている場合、彼はおそらく 100 のストアド プロシージャすべてを 1 日か 2 日で移植できます。別のプログラマーは 2 週間から 3 週間かかるかもしれません。

SQL は理想的な世界では標準であると思われますが、私たちは理想的な世界に住んでいません。

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

于 2010-01-15T12:36:58.180 に答える
0

最悪のシナリオでは、おそらくそれらすべてを1行ずつ確認する必要があります。あなたはそれを徹底する必要がありますが、ほとんどの場合、それがmysqlと互換性があることを確認するためにそれを読んでいるだけだと思います。たまに物事を変えるかもしれません(主にクエリで)。

それは非常に依存しているので、それは難しい質問です。手順はどのくらい複雑ですか?それらは100%MySQL互換である場合もあれば、100%非互換である場合もあります。本当に、あなたはあなた自身の評価をしなければなりません。

ただし、MySQLに慣れている場合は、1日以上かかることはありません。

于 2010-01-15T12:30:20.100 に答える
0

最近、OracleDBをMSSQLServerに移動する必要がありました。ソースを読み、必要に応じて調整するのに約3日かかりました。プロジェクトとほぼ同じ量のクエリがありましたが、これらのクエリはほとんど些細なものでした(選択、挿入、更新、削除)。ストアドプロシージャには通常、複数のクエリが含まれているため、1週間の作業現実的である可能性があります。

于 2010-01-15T13:02:09.317 に答える
0

状況によって異なりますが、行ごとにかなりの量のクロールが発生する可能性があります。SP が単純な選択である場合、これはかなり速いかもしれませんが、簡単だと思われるものでさえ、手動で変更する必要があります。たとえばselect top 20 [column] from [table]、MSSQLselect [column] from [table] limit 0,20では MySQL になります。これは、ページネーションなどのタスクが処理される上位レベルのコードの変更を意味することさえあるかもしれません.SQLを変更するだけでうまくいくとは限りません.

より複雑なストアド プロシージャや、T-SQL 関数を使用するものがある場合は、長くて満足のいく結果が得られない可能性があります。

于 2010-01-15T12:37:04.063 に答える
0

I don't think there is a correct answer to this.

How much stuff is using things that are mssql specific, is any of it compatible ? not sure. If they are simple selects you shouldn't have to much of an issue but if ou are doing more than that you're going to need to do a line-by-line analysis to be honest,

How long was the original development effort ? or was it done over a period of many years ?

Personally I'd resist any temptation to use cut and paste at all, I'd assess what you have and then write it all from scratch in mysql, Hopefully your database is fully documented (grins) if not then I don't envy this task.

Is this a system that is currently live or is it something that is in development ? you don't say.. don't forget stuff like collations and unicode data, its not just a case of bringing over sprocs if its a live database with stuff in anymore.

The next thing to question is, is the current structure actually something you want to move forward with or can you move to hibernate, then there are performance questions.

The answer to your question directly is it depends on the person and complexity of what you are talking about.. but it is definately a task to take great care over. Especially if this is a live system

于 2010-01-15T12:44:26.430 に答える