Войти

Показать полную графическую версию : преобразование запрсов и результатов MySql <-> MsSQL на лету


ex2
04-09-2008, 10:31
Есть клиентский софт, заточен под MySql сервер. Есть желание пользовать вместо последнего MsSQL сервер, но клиентский софт переписывать разработчик не хочет (при замене сервера лицензия на софт остается). При этом напрашивается некий аналог прокси, который принимает запрос клиентского софта к MySql серверу, перекидывал (возможно с правкой) запрос на MsSQL сервер, получал от него данные и отдавал данные в формате выдачи MySql клиентскому софту. При этом делал это _быстро_.
Возможно существуют подобные реализации, либо такая операция делается более культурно?

vadimiron
04-09-2008, 12:41
такая операция делается более культурно »
Такое делается изначально с помощью адаптеров, которые абстрагируются от конкретной базы данных - то есть надо переписывать клиентский софт.
Всё остальное сопряжено с потерей времени и кучей ошибки - переписать намного быстрей, тем более запросы к базе данных обычно не так много строк кода занимают.

Busla
04-09-2008, 13:55
Такое делается изначально с помощью адаптеров, которые абстрагируются от конкретной базы данных »подобный подход превращает базу данных в некое абстрактное хранилище массивов.запросы к базе данных обычно не так много строк кода занимают »в контексте MySQL - скорее всего вся бизнес логика реализована в клиенте.

ex2
04-09-2008, 15:24
Часть б. логики остается на сервере (включающем сервер приложений, зависящий от сервера MySql ), с которым удаленно работает упоминавшееся выше клиентское ПО. Его разработчик, конечно же, выкатил энную сумму за перевод всей системы на MsSQL и win, что несколько грустно )
Хотелось сохранить старую функциональность (сервер на базе linux) и "заменить только SQL сервер" использовав купленый предприятием. Соответственно, ищу решение под *nix но чувствую - не найду (

vadimiron
04-09-2008, 16:26
Хотелось сохранить старую функциональность (сервер на базе linux) и "заменить только SQL сервер" »
Подсоединяться к SQL серверу с Линкса - это не проблема, надо кое что настроить - но не сложно.

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

Amin
01-02-2009, 00:04
Подсоединяться к SQL серверу с Линкса - это не проблема, надо кое что настроить - но не сложно.
Хм, даже интересно стало. Я в свое время пытался с линуксовой машины подсоединиться к M$SQL 2005, и так и не смог заставить это работать. Практически везде для этого рекомендуют использовать пакет FreeTDS, но он давно не обновлялся и самая старшая версия M$SQL, для которой заявлена работоспособность - 2000. Если не затруднит, было бы интересно услышать толковые мысли насчет работы из *nix-систем с MSSQL 2005 / 2008.

Но вам же нужно также в коде всё переписать, чтобы мочь работать с другой базой данных. Если будете платить кому то за переделывание кода, то требуйте тогда, чтобы кода независимо от конкретной базы данных писался - соответствующий классов и наработок в интернете полно и не требуют долго переобучения
1С уже показала нам пример такого подхода. База из тысячи таблиц, полный игнор индексов, соединения по *текстовым ключам* + кривой транслятор для PostgreSQL в 1С 8.1. В результате - четыре заявленных хранилища (файловое, M$SQL, PgSQL, DB2) - и поддержка каждого не без кривизны.

ИМХО, разумнее выбрать одну базу, исходя из требований, и сделать работу с оной действительно по уму, а не как у 1С.
Кстати, в современных условиях цена начинает иметь значение. Помните, что при больших базах (> 4 Гб) и большом числе соединений (MSSQL еще и клиентские лицензии содержит) MSSQL - это ни разу не дешево.

А если MySQL не тянет нагрузку - сперва попробуйте заняться оптимизацией запросов. В них - суть зла.
Смена БД - это уж совсем крайняя мера, чатсо заканчивающаяся созданием новго проекта почти с нуля.
Если уж будете менять - посмотри в сторону PostgreSQL. Это того стоит.




© OSzone.net 2001-2012