powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Миграция ORACLE -> MSSQL 2005
6 сообщений из 31, страница 2 из 2
Миграция ORACLE -> MSSQL 2005
    #33404320
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локшин Марк ASCRUSКстати насколько я понимаю MS сделала ход конем - если народ на MSSQL2005 начнет в ходе работ использовать C# процедуры, то перевод БД на другой сервер будет крайне затруднителен (тут уж и я конвертор написать не смогу). Так что не знаю как насчет прибавления функциональности, а вот защиты от перевода на конкурирующие БД они добились
Так вроде в Oracle поддержка C# уже появилась, насколько я понимаю. Она чем-то принципиально отличается?
Я думаю что да, принципиально отличается.
Напишите на PL/SQL функцию:
Код: plaintext
1.
2.
3.
4.
create or replace function Call_Me @i int
begin
return @i
end
Где-то в синтаксисе я скорее всего наврал, давно не писал на Oracle, по смысл функции понятен - принимает значение и возвращает его. Если написать аналог этой функции на .Net, то в SQL2005, для 1 000 000 вызовов, функция на C# на 27% быстрее аналога на TSQL.
Вопрос - во сколько (сотен?) раз аналогичный код на C# будет медленнее в Oracle/Sybase по сравнению со своим аналог на PLSQL/WatcomSQL?
...
Рейтинг: 0 / 0
Миграция ORACLE -> MSSQL 2005
    #33404402
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
segunА вы скачивали и смотрели этот продукт или просто прочитали статью и сделали выводы?
А смысл скачивать ? Что - сей продукт "волшебным" образом расширяет функционал TSQL до уровня PL/SQL ? По моему достаточно здравого логического рассуждения, чтобы понять, что это лажа. Привожу простой пример - в статье написано, что генераторы Оракла автоматически заменяются счетчиками. Сразу видны несоотвествия:
1. Генератор Оракла может использоваться как сквозная нумерация на несколько таблиц. Счетчики MSSQL этого сделать не в состоянии. В отличие мухлежа с ROW_ID, счетчики в таблицу-эмулятор с структурой "name, value" не вынесешь, так как она будет по любому участвовать в транзакции.
2. Никто не ущемляет Oracle программистов использовать несколько генераторов на таблицу - как известно два счетчика на одну таблицу не повесишь.
3. Генераторы могут использоваться в любом месте - триггере (BEFORE кстати), хранимых процедурах и функциях PL/SQL и клиентской части, причем код может получить как текущее значение генератора, так и потребовать следующее. В MSSQL2000 можно получить только текущее значение счетчика, буду рад узнать, что в MSSQL2005 сделали аналог ASA-шной функции GET_IDENTITY(), позволяющей получить по указанной таблице новое значение счетчика без физической вставки записи - только тогда можно эмулировать поведение генераторов через счетчики.

Не спорю, конечно они могли и выкрутиться: например организовать на каждый генератор табличку с инкрементным полем и написать дублирующие функции генератора, которые считывают последнее значение счетчика и заносят туда новую запись, возвращая полученный @@IDENTITY. Только вот записи в ней добавлятся будут - как никак участвует в транзакциях, если не сделали аналога GET_IDENTITY().

Но все это цветочки - а вот как быть с наворотами Оракла, в виде ООП, массивов, динамического SQL с поддержкой выполнения скрипта большого объема и прочих радостей жизни ? Неужели тоже эмулировали ? Будет интересно услышать отзывы и впечатления тех, кто воспользовался этой утилитой для портирования полноценных промышленных БД Оракла на MSSQL2005, а не мелких базок, написанных студентами. Я конечно не знаток Oracle, однако так как имел опыт написания конвертора с MSSQL2000 на ASA9, которая на достаточно большом уровне поддерживает максимальную совместимость с ним (насколько позволяют собственные архитектурные особенности) ... и то не мало подолбался, пока написал полноценный конвертор. И ведь это я писал для связки, где ASA9 значительно на уровне WatcomSQL превосходит TSQL и позволяет полностью на своей функциональности эмулировать особенности TSQL, которые в ASA в явном семантическом виде отсутствуют и реализованы по другому. Однако даже с учетом нового, появившегося в MSSQL2005 я лично себе не представляю написания обратного конвертора БД с WatcomSQL на TSQL 2005, несмотря на расширения, отсутствует целая куча необходимой даже для эмуляции функциональности. Что же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ?

segunИ Oracle и DB2 в той или иной степени поддерживают интеграцию с .Net.
Та же песня - в той или иной степени - это обычные расширенные хранимые процедуры, как например это сделано в Oracle, DB2 и всех Sybase серверах для поддержки Java. Насколько я понимаю, в MSSQL2005 сделана довольно тесная интеграция с .NET, позволяющая много чего, что не сможет обычная расширенная хранимая процедура или функция. Или я ошибаюсь ?
...
Рейтинг: 0 / 0
Миграция ORACLE -> MSSQL 2005
    #33404420
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSЧто же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ?
Есть подозрение, что Вас скоро будут бить :)) Возможно, начнут уже сегодня...
...
Рейтинг: 0 / 0
Миграция ORACLE -> MSSQL 2005
    #33404428
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну.... насчет GET_IDENTITY() - можно получить текущее значение и приращение через набор функций ident_current/ident_seed/ident_incr

насчет остального - надо просто смотреть на эту тулзу и тогда уже решать. Что толку воздух сотрясать.
...
Рейтинг: 0 / 0
Миграция ORACLE -> MSSQL 2005
    #33404456
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChA ASCRUSЧто же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ?
Есть подозрение, что Вас скоро будут бить :)) Возможно, начнут уже сегодня...
С какой стороны - Oracle или MSSQL ? ;)

авторну.... насчет GET_IDENTITY() - можно получить текущее значение и приращение через набор функций ident_current/ident_seed/ident_incr
Перечисленные функции не возвращают новое значение в MSSQL2000. Только последнее - в этом есть разница и кстати иногда большая и обидная.
...
Рейтинг: 0 / 0
Миграция ORACLE -> MSSQL 2005
    #33404476
AAron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а они и не могут его вернуть, т.к. тогда каждый вызов должен был бы резервировать новое значение...
Иногда действительно очень обидно.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Миграция ORACLE -> MSSQL 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]