Сколько времени занимает перевод запросов SQL Server в MySQL? - PullRequest
3 голосов
/ 15 января 2010

Мне было поручено оценить, сколько времени потребуется, чтобы переписать слой доступа к данным приложения .NET с использованием SQL Server для использования MySQL. Это не подлежит обсуждению, произойдет ли это или нет ... просто сколько времени это займет.

Я оценил всю работу, за исключением перевода хранимых процедур в SQL Server в запросы MySQL. Модель данных будет по существу такой же (либо по тем же таблицам, либо по запросам, указывающим на исходную схему), но в MySQL. У меня есть около 100 хранимых процедур, большинство из которых считывает данные, и в DAL будут проведены достойные модульные тесты, чтобы мы могли видеть, когда все работает / ломается.

Итак, вопрос в том, сколько работы (в широком смысле) переводить между двумя диалектами SQL? В общих чертах это, как правило, тривиальная работа и в основном автоматизированная с поиском и заменой? Или это то, что для большого количества типичных запросов потребуется ручная настройка? Я прошу немного общего руководства по масштабу задачи.

Спасибо за любую помощь.

Ответы [ 5 ]

2 голосов
/ 15 января 2010

Нет правильного ответа. Это зависит. Если у вас есть SQL rockstar для MySQL и MSSQL, он, вероятно, может портировать все 100 хранимых процедур за день или два, другому программисту может потребоваться от 2 до 3 недель.

Предполагается, что SQL является идеальным в идеальном мире, но мы не живем в идеальном мире.

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

0 голосов
/ 15 января 2010

Мне недавно пришлось переместить БД Oracle на MSSQL Server. У меня ушло около 3 дней, чтобы прочитать исходный текст и при необходимости откорректировать вещи. Было примерно такое же количество запросов, как и в вашем проекте, но эти запросы были почти тривиальными (выбрать, вставить, обновить, удалить). Хранимая процедура обычно содержит более одного запроса, поэтому неделя работы МОЖЕТ быть реалистичной.

0 голосов
/ 15 января 2010

Не думаю, что на это правильный ответ.

Сколько вещей использует вещи, специфичные для mssql, совместимо ли это? Точно сказать не могу. Если они просты, у вас не должно быть особых проблем, но если вы делаете больше, чем нужно, вам нужно будет построчно проанализировать, если честно,

Сколько времени занимались разработкой? или это было сделано в течение многих лет?

Лично я бы вообще не поддавался искушению использовать вырезание и вставку, я бы оценил то, что у вас есть, а затем написал бы все с нуля в mysql. Надеюсь, ваша база данных полностью документирована ( ухмыляется ) если нет, то я не завидую этой задаче.

Это система, которая в настоящее время работает, или она находится в стадии разработки? вы не говорите ... не забывайте такие вещи, как сопоставления и данные в юникоде, это не просто случай передачи sprocs, если это живая база данных с такими вещами.

Следующее, что нужно поставить под вопрос: является ли текущая структура действительно тем, с чем вы хотите двигаться дальше, или вы можете перейти в спящий режим, тогда возникают вопросы производительности.

Ответ на ваш вопрос напрямую заключается в том, что это зависит от человека и сложности того, о чем вы говорите ... но это определенно задача, над которой стоит позаботиться. Особенно, если это живая система

0 голосов
/ 15 января 2010

Это будет зависеть, но, скорее всего, у вас будет довольно много построчного сканирования. Если SP просто выбирают, то это может быть довольно быстро, но даже некоторые вещи, которые, по вашему мнению, будут простыми, нужно будет изменить вручную. Например. select top 20 [column] from [table] в MSSQL становится select [column] from [table] limit 0,20 в MySQL. Это может даже означать изменения в коде более высокого уровня, где обрабатываются такие задачи, как разбиение на страницы - вы не можете предполагать, что вам нужно всего лишь изменить SQL, чтобы все заработало.

Если есть более сложные хранимые процедуры или что-либо, использующее функции T-SQL, то вы можете оказаться в длительной и в целом неудовлетворительной ситуации.

0 голосов
/ 15 января 2010

В худшем случае вам, вероятно, придется проходить их все построчно. Вы должны быть настолько внимательны, но в основном я полагаю, что он просто читает, чтобы убедиться, что он совместим с MySQL. Иногда может быть что-то изменить (в основном в запросах).

Это сложный вопрос, потому что он очень сильно зависит. Насколько сложны процедуры? Они могут быть на 100% совместимы с MySQL или на 100% несовместимы. Вы просто должны сделать свою собственную оценку, действительно.

Не должно занимать больше дня, если вы знакомы с MySQL.

...