|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Павел Лузанов Будет ли в бумаге? Как бы подписаться, чтоб не пропустить? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 11:11 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Курю родные мануалы. копаю тему про создание функций, возвращающих refcursor. полнейшая неразбериха, нигде внятно не объясняются все варианты. Обнаружил что в нашем приложении вообще используется вариант, который нигде не описан, но он работает. Это п-ц, товарищи! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 11:28 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Guzya Павел Лузанов Будет ли в бумаге? Как бы подписаться, чтоб не пропустить? В бумаге будет. За деньги. На сайте pdf - бесплатно. Как подписаться не знаю. Но январь, максимум февраль. Так что ждать недолго. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2021, 17:35 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
most23, Всю ветку читать было лень, проходил это много раз. NVL - переписать на Coalesce. Вернее, создать функцию. И вообще от сахарка избавиться в телах функций. NVL - Не есть ANSI Дата + 1 (Numeric) - посгря позволяет как С++ перегружать операторы. основной синтаксис тот же. Пэкэджи можно в схемы оформить, можно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 00:39 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
...Вот посгря при этом не компилируемая, как оракл. И позднее связывание, как в M$$QL Так что ошибку мы выловим на этапе исполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 00:51 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
мой первый ассайнмент на новой работе: сравнить время выполнения хранимых процедур Oracle и PG. Для большей точности одна и та же процедура вызывается по циклу 1000 раз. Ну чо, сравним. Только собираюсь заменить запросы с параметрами у рефкурсорных функций на NDS. чтобы, значить, заставить их репарсить при вызове по циклу. Народ местный удивился - "а что, так можно было?" Я также слегка обалдел удивился обнаружив в частной беседе что цель менеджера проекта (и моего начальника) отбиться от PG потому что он должен быть будет медленный. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 04:07 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
most23 мой первый ассайнмент на новой работе: сравнить время выполнения хранимых процедур Oracle и PG. Для большей точности одна и та же процедура вызывается по циклу 1000 раз. Ну чо, сравним. Только собираюсь заменить запросы с параметрами у рефкурсорных функций на NDS. чтобы, значить, заставить их репарсить при вызове по циклу. Народ местный удивился - "а что, так можно было?" Я также слегка обалдел удивился обнаружив в частной беседе что цель менеджера проекта (и моего начальника) отбиться от PG потому что он должен быть будет медленный. Фирма солидная, международная, большая, как раз на днях её съела купила еще более большая фирма из GB Новые хозяева уже добавили всем 10 персональных больничных дней в год, но запретили ранее действующее разрешение переносить неиспользованый отпуск на 3 месяца в следующий год. У кучи народа расчитывающих на это отпуска погорели. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2021, 04:10 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
delphinotes, Вы пишите: > Ошибки (ну например банальная опечатка в коде) будут при исполнении, > причём только если исполнение дошло до этой строки (ну if-then-else блоки). То есть что, все хранимые нужно тестировать со всеми вариантами входных параметров, чтобы пробежалось по всем кусочкам кода? Заглянуть в каждый иф, в каждый кейс... Как Вы это делаете? Это же всё страшно ненадежно! Может быть есть методика, кроме "не нравится - не программируй"? Я не ёрничаю. Я реально в ужасе от таких перспектив. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 19:48 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller, Элементарно, Ватсон, деплоишь в продакшен и ждешь жалоб от юзеров. Патанатом лучший диагност! Юзер лучший тестировщик! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 21:20 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller, Да, простой тест: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
функция test.f1() существует, поэтому вызов select test.main(true) отработает, второй функции нет - вызов select test.main(false) завершится ошибкой: Код: sql 1.
С другой стороны, я вижу в этом возможность обхода отсутствия условной компиляции. В Oracle оно есть: Код: sql 1.
Используем для реализации, так сказать, client specific логики. Ну а в целом, такие особенности вынуждают писать код более прямолинейным и чистым... и практика показывает, что это возможно, но требует бОльших усилий (особенно тяжело новичкам). Насчёт тестирования - использую такой подход, при котором не создаётся больших (по кол-ву кода) процедур. Если процедура делает много чего, то каждый кусочек выделяется в отдельную процедуру, которая и тестируется. При написании кода с нуля, тут ничего такого нет, только рутина. Ежели брать Oracle легаси (у нас до дури plsql-кода с использованием сомнительных практик)... я даже не знаю, отказался я от этой идеи. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 21:56 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Кстати недавно наткнулся на такое (при работе со структурными типами). Вот так писать нельзя (PG 12): Код: sql 1.
вместо этого надо: Код: sql 1.
Это работает как plpgsql, так и в sql. см. здесь ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 21:59 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Да, и ещё одна особенность: null в уникальном индексе не работает. Т.е. если хоть одно из полей составного индекса из null, то уникальность не работает. Варианты обхода: а) использовать where б) приводить к not null с помощью coalesce Эта проблема уже несколько раз на этом форме поднималась, например вот: Как создать уникальный составной индекс, который может содержать null значение ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 22:06 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller delphinotes, Вы пишите: > Ошибки (ну например банальная опечатка в коде) будут при исполнении, > причём только если исполнение дошло до этой строки (ну if-then-else блоки). То есть что, все хранимые нужно тестировать со всеми вариантами входных параметров, чтобы пробежалось по всем кусочкам кода? Заглянуть в каждый иф, в каждый кейс... https://github.com/okbob/plpgsql_check вот эта штука сильно помогает найти грубые ошибки и опечатки, которые только в рантайм вылезут. не логические, конечно, но, тем не менее,мне сильно помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 09:49 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
delphinotes Да, и ещё одна особенность: null в уникальном индексе не работает. Т.е. если хоть одно из полей составного индекса из null, то уникальность не работает. По ясному требованию стандарта null не равен null, поэтому совершенно логично уникальный индекс следует этому правилу. А оракл пользуется другой альтернативной логикой. При том, напрямую не противоречащей sql spec. Передаём привет sql spec, недостаточно явно описывающему многие нюансы. delphinotes Вот так писать нельзя (PG 12): можно. Но документацию читать надо. Там описано, как считается is null над композитами. По рантайм ошибкам - плюсую plpgsql_check. Весьма хороший штук. muller Может быть есть методика, кроме "не нравится - не программируй"? Я не ёрничаю. Я реально в ужасе от таких перспектив. Ну самые обычные впечатления, когда переходишь с компилируемого языка на интерпретируемый. С go на python, например, или подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 10:31 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
delphinotes, Душевно признателен за подробный ответ! И вот у меня система на Оракле. Двухзвенка. Бизнес логика на сервере. То есть огромное количество хранимых в пакетах с процедурами, подпроцедурами, с бешенным количеством параметров, и эти параметры зачастую %rowtype а то и коллекции %rowtype. Допустим, я получаю распоряжение: Отказаться от Оракла. Переехать на Постгресс. И, судя по Вашему ответу, хренушки у меня получиться эффективно сохранить архитектуру. Проще фигню какую-то намутить, используя Постгресс только как хранилище. Ну что ... новые вызовы. Ещё раз спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 11:27 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller И вот у меня система на Оракле. Двухзвенка. Бизнес логика на сервере. То есть огромное количество хранимых в пакетах с процедурами, подпроцедурами, с бешенным количеством параметров, и эти параметры зачастую %rowtype а то и коллекции %rowtype. это, как показывает практика, так себе решение. доходит иногда до смешного, поменял комментарий у поля и пару тысяч invalid объектов в базе. и тут начинается веселье) правда в оракле есть шаред пул) по идее на ПГ должно быть все проще с изменениями в структуре таблиц) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 13:10 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller, Тоже имеем подобную архитектуру. При переходе частично код менялся регулярками, создавались функции заглушки от которых потом уже избавлялись (самое распространенная это строковая_переменная is null заменялась регуляркой на isNull(строковая_переменная) ult где дополнительно проверялась на пустую строку для сохранения логики Oracle). %rowtype просто удалялись, коллекции сложных типов пришлось заменить на массивы (с изменением кода, частично регулярками), более сложные случаи заменили на работу с JSONB. Так что даже если безнеслогика заложена в БД, то вполне возможно перенести на ПГ. Ну и потом расширение plpgsql_check просто обязано быть. У ИК есть конвертер, который отрабатывает львиную часть изменений, можете попробовать связаться с ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2021, 17:55 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Swa111, Благодарю за советы, если прижмут к реке, то буду использовать. Но чето оптимизма поубавилось... воистину знания умножают скорбь. Ну ... авось вывернусь, не впервОй. ЗЫ. И да, лучше всё станет инвалидным из-за мелочи где-нибудь на тестовом контуре, чем (обычно под новый, особливо високосный год такое бывает) система вывалится с неопознанным эксепшеном на проде. Никому такого в Новом году! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2021, 18:33 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller Swa111, Благодарю за советы, если прижмут к реке, то буду использовать. Но чето оптимизма поубавилось... воистину знания умножают скорбь. Ну ... авось вывернусь, не впервОй. ЗЫ. И да, лучше всё станет инвалидным из-за мелочи где-нибудь на тестовом контуре, чем (обычно под новый, особливо високосный год такое бывает ) система вывалится с неопознанным эксепшеном на проде. Никому такого в Новом году! а какой это у нас вдруг вискокосный год? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2021, 19:04 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Ролг Хупин, у нас 2024 ближайший вроде как, а у Вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2021, 22:53 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller ... если прижмут к реке, то буду использовать. Но чето оптимизма поубавилось... ... Какие ужасы вы пишите. Аж кровь стынет. Вот эти те, которые заставляют вас лоб морщить над такими вопросами, что они вообще себе, и о себе тоже, думают? Где, интересно, они насмотрелись работы с биржей на Postgress. И даже, если на самом деле где-то насмотрелись, понимают ли, что платить за такой Postgress все равно придется вполне полновесно. Поверить не могу, что о такой безнадеге вас заставляют думать существующие клиенты. А про будущих хорошо знать вот что: статистически они не всегда отчетливо и детально понимают, чего точно хотят. Слишком много глубоких мыслей в их хотелках намазано. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2022, 15:08 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
booby, когда я был маленький, то огорчался, что придется менять инструментарий с борландовского на оракловый ... теперь вот так ... жизнь - боль. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 12:47 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
booby, freeware многие используют не потому что дешевле, а потому что появляется уверенность, что заказанная разработка через 3 года не превратится в "тыкву" из - за смены "Концепции" у продавца инструментария. Или из-за того что он банально разорится. просто для сравнения какая может быть поддержка: поддержка PG Чтобы получить такую у oracle нужно быть американской компанией из top10 Про политическую составляющую я даже не заикаюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 13:44 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
muller ... когда я был маленький, то огорчался... Смена платформы всегда в той или иной степени болезненна. Истории про "когда я был маленький" могут оправдываться тем, что при всяком былом переходе система в целом, как бы ни был болезнен переход, всегда получала в техническом отношении такое новое качество, про которое можно было сказать - вот ради этого стоило затевать всю эту затею. Одно дело, когда речь идет о том, что нам надо обрабатывать больше данных за то же время. Другое дело, когда кто-то думает, что клиенту система вот на такой-то платформе будет дешевле обходиться. Ладно, прошу прощения за реплику. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 22:29 |
|
Переход с Oracle на Postgress
|
|||
---|---|---|---|
#18+
Vadim Lejnin, среди наших клиентов есть минимум один, который не может купить себе свежий оракл, и минимум один не может официально докупить себе виндус -лицензий для рабочих станций, потому что оба-два под санкциями с разными предлогами. Приходится задумываться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.01.2022, 23:20 |
|
|
start [/forum/topic.php?fid=53&msg=40123703&tid=1993674]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 290ms |
0 / 0 |