powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Миграция с Oracle на Postgres
143 сообщений из 143, показаны все 6 страниц
Миграция с Oracle на Postgres
    #39178093
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Руководство решило переходить с оракла на постгрес для решения проблем производительности. Кто что думает по этому поводу? Мое мнение, что если умудрились повесить оракл, то простая миграция на постгрес с переносом всей логики лоб в лоб ситуацию не спасет, а может сделать еще хуже. При этом будут потрачены тысячи человеко-часов. Основной упор идет на то, что кривой оптимизатор запарывает всю производительность, приходится использовать кучи хинтов в запросах, а на постгресе этой проблемы быть не должно из-за более умного оптимизатора. Объем бд около 3 Гб, самая большая таблица 500 000 записей, но возможен призрачный рост в далеком будущем до миллиона. Ну и если у кого был опыт такой миграции, с какими подводными камнями можно столкнуться, чтобы заранее подготовиться и сделать все минимальными ресурсами?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178094
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатался. Конечно 3 Тб, а не Гб
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178178
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daunito,

дурачки. у оракла объективно лучший оптимизатор в индустрии. у постгреса даже честного партишенинга нет, не говоря уже о прочих фишках самого оптимизатора. на сколько я понимаю постгрес до сих пор при фуллскане долбит базу одноблочным чтением, т.е. у него даже на примитивных запросах шансы сравняться с ораклом только на ssd.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178190
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoРуководство решило переходить с оракла на постгрес для решения проблем производительности.бу-го-га... даже сами постгрессщики признают, что до оракла в производительности им далеко, зато дешевле :)
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178197
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для себя судя по тестам я определил.

ПГ вдвое медленнее ОРА.
По замороченности - сравнимо.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178198
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl,

лада веста в 4 раза медленне феррари ф-1, и чо?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178200
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterSiemargl,

лада веста в 4 раза медленне феррари ф-1, и чо?
Зато в весту больше влезет )
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178209
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще меня всегда поражало, как такие решения принимаются - ведь проще взять и посчитать, что аудит и тюнинг производительности значительно дешевле и быстрее, чем такие глобальные миграции/апгрейды и тд...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178216
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderаудит и тюнинг производительности значительно дешевле и быстрее, чем такие
глобальные миграции/апгрейды
Но это ведь ТСа придётся уволить и заменить кем-нибудь с лучшей подготовкой. А вдруг он
племянник гендира?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178218
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ну не знаю... на каждую контору хороших спецов ДБА не напасешься, и высокая квалификация нужна на самом деле редко. Проще и дешевле раз в полгода-год заказывать аудит с тюнингом на 3-7 дней, хотя бы у тех же ФОРСов и РДТЕХов. А в идеале был бы как на западе - заключать такие контракты с независимыми контрактниками - они хоть стараться на каждый чих впаривать более дорогие серваки не будут.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178225
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtender,

Да заказывали специолистов=) Пришли, сказали используйте бинды в запросах, иначе никак. Для этого нужно было переписать все приложение.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178227
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunterxtender,

Да заказывали специолистов=) Пришли, сказали используйте бинды в запросах, иначе никак. Для этого нужно было переписать все приложение.
Странно.

Для нормальной работы нужно правильно написать все приложение. Вотонокак ?! O_o
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178228
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoРуководство решило переходить с оракла на постгрес для решения проблем производительности. ...
Сразу видно, что вам удалось найти по настоящему высоквалифицированных менеджеров. Надеюсь на этом они не остановится, и найдут еще много успешных, хотя и радикальных решений.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178232
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglСтранно.

Для нормальной работы нужно правильно написать все приложение. Вотонокак ?! O_oПриложение было написано давно и до нас. Переписывать его никто не собирался. Чем в таком случае помогут ассы по тюнингу? Оказалось, что ничем.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178234
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот парсер и оптимизатор тормознутый в Оракле это - факт.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178255
Вадиман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причина происходящего, вероятно, в том, что руководство не видит оракловых спецов, с кем можно работать по оптимизации и решению прочих проблем, а спец по постгресу, наверное, есть на примете. Нет?
Подводных камней масса:

1. Невозможность коммитить транзакции в процедурах. Может, коммит в процедурах - это и плохой тон, но если это есть, то переделка ляжет на плечи клиентской части
2. pgsql достаточно демократичен по поводу использования левописных структур и типов данных. Чего будет стоить перенос оных в оракл, если таковые присутствуют... взять, к примеру, древовидный тип ltree, в котором многие любят хранить, скажем, адреса
3. вменяемого аналога оракловому партиционированию нет. Есть жуткий суррогат.
4. веселая отладка. Решение проблем с производительностью - это гребаная черная магия. Толковых инструментов для анализа нет, нет ничего похожего на механизм oracle events. Последний раз, когда сидел на 9.1, видел какую-то тулзу для юниксов, которая может выдавать хоть что-то, пригодное для анализа чтений, дисковой нагрузки, но по полноте дебажных данных сравнивать с ораклом нельзя. Для постгреса под виндой такой тулзы нет. Механизм решения проблем следующий: в голове программиста сидят 20 шаблонов, как делать хорошо и как не делать плохо. Он просто перебирает эти шаблоны и смотрит, какой подходит к его ситуации. Инструментария нет.
5. Если каким-то образом ваш проект на оракле завязан на изменения в ddl по ходу пьесы, то в постгресе вас ждет большой сюрприз - ddl там транзакционен, т.е. может откатываться. С блокировками, соответственно, ситуация обстоит по-другому.

Если вернусь с совещания в течение часа, допишу пункты 6 и 7 про оптимизатор.

В целом, postgres - классная СУБД для своего сегмента. На мой взгляд, если не оракл, то Postgres. Просто человеку, вырасшему на оракле, тяжело будет спускаться.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178262
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoРуководство решило переходить с оракла на постгрес для решения проблем производительности. Кто что думает по этому поводу?


Идиотизм. Postgres замечательная СУБД, но она не лучше (и не хуже) Oracle.
Они примерно одинаково мощные.

daunitoМое мнение, что если умудрились повесить оракл, то простая миграция на постгрес с переносом всей логики лоб в лоб ситуацию не спасет, а может сделать еще хуже.


Согласен на 100%. Будет только хуже, просто потому, что вы PG ещё не умеете "готовить", а к Oracle почти наверняка
уже хотя-бы как-то приспособились.

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



В PG нет более умного оптимизатора.
В Oracle оптимизатор очень хороший.
Если кто-то его ругает, то скорее всего он сам не очень компетентен...

daunitoОбъем бд около 3 Гб, самая большая таблица 500 000 записей, но возможен призрачный рост в далеком будущем до миллиона.


Это мало.

daunitoНу и если у кого был опыт такой миграции, с какими подводными камнями можно столкнуться, чтобы заранее подготовиться и сделать все минимальными ресурсами?

Опыт миграции есть у многих, но тут главное -- зачем всё это ?
Я бы понимал, если нужно было бы деньги экономить, но ведь наверное Oracle уже закуплен...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178267
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivОни примерно одинаково мощные.
серьезно? мне кажется, они несколько в параллельных плоскостях находятся. И чтобы PostgreSQL приравнять к Oracle, это Постгрес надо сильно переоценить. Или поверить в маркетинг.
Конечно, пересечение по применению у них есть, но не стопроцентное же.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178269
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Oralce SE мало чем от Postgresql отличается. Нет секционирования, параллелизма, нормальной диагностики, даже того-же Enterprise Manager. A энтерпрайз с перечисленными фичами будет стоить за сотню уе. Фишка делеко не всем доступная.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178276
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunterxtender,

Да заказывали специолистов=) Пришли, сказали используйте бинды в запросах, иначе никак. Для этого нужно было переписать все приложение.а в чем конкретно проблема была? чьи спецы были?

Relic Hunterkdv,

Oralce SE мало чем от Postgresql отличается. Нет секционирования, параллелизма, нормальной диагностики, даже того-же Enterprise Manager. A энтерпрайз с перечисленными фичами будет стоить за сотню уе. Фишка делеко не всем доступная.так никто и не говорит что оракл дешевый...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178278
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterА вот парсер и оптимизатор тормознутый в Оракле это - факт.это из разряда "Лучше день потерять, потом за пять минут долететь" лучше потратить пару микросекунд на хорошую оптимизацию и получить время выполнения в 10с, чем ничего не толком не оптимизировать и выполнять час
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178282
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderRelic HunterА вот парсер и оптимизатор тормознутый в Оракле это - факт.это из разряда "Лучше день потерять, потом за пять минут долететь" лучше потратить пару микросекунд на хорошую оптимизацию и получить время выполнения в 10с, чем ничего не толком не оптимизировать и выполнять час ну не скажи, во всяких там реал тайм, телекомах это будет решающих фактор. они не будут ждать если оно не в кеше.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178321
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunterxtenderпропущено...
это из разряда "Лучше день потерять, потом за пять минут долететь" лучше потратить пару микросекунд на хорошую оптимизацию и получить время выполнения в 10с, чем ничего не толком не оптимизировать и выполнять час ну не скажи, во всяких там реал тайм, телекомах это будет решающих фактор. они не будут ждать если оно не в кеше.Если это OLTP, то там используются bind. т.е. полный парсинг исчезающе редкая операция. Если bind не используются, то разработчика на кол.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178454
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoРуководство решило переходить с оракла на постгрес для решения проблем производительности. Кто что думает по этому поводу? Мое мнение, что если умудрились повесить оракл, то простая миграция на постгрес с переносом всей логики лоб в лоб ситуацию не спасет, а может сделать еще хуже. При этом будут потрачены тысячи человеко-часов. Основной упор идет на то, что кривой оптимизатор запарывает всю производительность, приходится использовать кучи хинтов в запросах, а на постгресе этой проблемы быть не должно из-за более умного оптимизатора. Объем бд около 3 Гб, самая большая таблица 500 000 записей, но возможен призрачный рост в далеком будущем до миллиона. Ну и если у кого был опыт такой миграции, с какими подводными камнями можно столкнуться, чтобы заранее подготовиться и сделать все минимальными ресурсами?

Вы правильно думаете...
Но есть вероятность, что производительность поднять получится.
Только если не делать перенос "лоб в лоб".
А разделив данные и логику их обработки.
Данные хранятся в PG, работа с данными пишется на другом ЯП.
Т.е. полный рефакторинг, под видом миграции.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178481
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinRelic Hunterпропущено...
ну не скажи, во всяких там реал тайм, телекомах это будет решающих фактор. они не будут ждать если оно не в кеше.Если это OLTP, то там используются bind. т.е. полный парсинг исчезающе редкая операция. Если bind не используются, то разработчика на кол.
почитай чтоли - как раз бинд и не используется из-за приложения. А переписывать его лень.
Уха-хахаха
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178530
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

поднять производительность наверняка можно если перепроектировать приложение и в ора. Не вижу смысла в переходе по крайне мере по причине указанной ТСом
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178570
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovxtenderаудит и тюнинг производительности значительно дешевле и быстрее, чем такие
глобальные миграции/апгрейды
Но это ведь ТСа придётся уволить и заменить кем-нибудь с лучшей подготовкой. А вдруг он
племянник гендира?..

Отнюдь. Меня привлекли для решения проблемы, я в той компании не работаю. Руководство изложило свои мысли и планы. Я хочу попробовать продавить их на тюнинг существующей базы, анализ производительности, частичный рефакторинг. Деньги не решающая роль при миграции, они искренне надеются увеличить производительность, но если при этом получится сэкономить все только будут рады.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178577
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoСразу видно, что вам удалось найти по настоящему высоквалифицированных менеджеров. Надеюсь на этом они не остановится, и найдут еще много успешных, хотя и радикальных решений.
Ну по крайней мере они вполне открыты для диалога и действительно хотят сделать лучше, а не просто распилить бабло. Поэтому есть надежда, что получится отговорить от этих мыслей и попробовать привести в порядок существующую базу
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178589
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan Durakпочитай чтоли - как раз бинд и не используется из-за приложения. А переписывать его лень.
Уха-хахаха
не увидел где это написано...
а cursor sharing=force попробовать?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178593
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoОтнюдь. Меня привлекли для решения проблемы
и что показал анализ то?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178676
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько мыслей.

daunitoРуководство решило переходить с оракла на постгрес для решения проблем производительности. Кто что думает по этому поводу? Мое мнение, что если умудрились повесить оракл, то простая миграция на постгрес с переносом всей логики лоб в лоб ситуацию не спасет, а может сделать еще хуже.

Совершенно нет никаких оснований говорить что переход на Postgres даст какие-то преимущества.
PG не постулирует никаких явных выгод для реляционок по сравнению с Oracle. Скорее наоборот. Oracle начиная с 11g
вводит целый ряд очень умных фоновых оптимизаторов которые трекают планы на основе AWR.

Возможно проблема-то лежит вовсе не в оракле а в бизнес-логике на PL/SQL. Она где-то избыточна.
И требует усилий по рефакторингу. И опять-же тут PG не тот помошник. Его язык хранимок более
бедный.

Возможно проблема в неверно выбраном партишионинге. И опять-же PG здесь не торт. Его
возможности партицирования слабее чем Oracle.

Возможно руководство банально хочет сэкономить на лицензиях. Но вот опытный чел поделился
со мной мыслью что в энтерпрайзе TCO в PG может быть даже наоборот и дороже. Оракл очень быстро правит
мелкие дефекты в ядре а дождаться этого от PG иногда невозможно. Обычно ищется опытный сишник,
сами правят ядро PG и в результате и риски и гимора еще больше.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178781
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunterkdv,

Oralce SE мало чем от Postgresql отличается. Нет секционирования, параллелизма, нормальной диагностики, даже того-же Enterprise Manager. A энтерпрайз с перечисленными фичами будет стоить за сотню уе. Фишка делеко не всем доступная.
для школьника может быть так и выгглядит, но вот для прогрмаммера с двумя годами опыта там уже пропасть. оптимизитор оракла в SE редакции сотни метрик учитывает при постройке планов. планы эти умеет кешировать. постгрес в лучшем случае кол-во строк учтет при выборе плана, единого кеша запросов нет, многоблочного чтения нет. у постгресса неудачная структура датафайлов - версии строк прямо в датафайлах хранятся, любой фуллскан читай не только то что нужно но и чужие версии, нафиг не нужные. ненужные версии нужно из датафайлов вычищать, чудовищно дорогая операция.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178788
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!оптимизитор оракла в SE редакции сотни метрик учитывает при постройке планов

Так чего ж он так на IS NULL
лажается ?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178795
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovТак чего ж он так на IS NULL
лажается ?..

лажаются интербейз-гайз, проецирующие свое примитивное представления на энтерпрайз субд.
оракл не хранит нулы в индексе, это реально глупо и невероятно дорого. если необходимо искать по нулл, орал предлагает делать function based index. видно, что ТС слышал звон на эту тему, но не понял откуда он.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178816
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!оракл не хранит нулы в индексе, это реально глупо и невероятно дорого
Э? Что там, собственно, дорогого-то? Просто ещё одна нода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178826
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЭ? Что там, собственно, дорогого-то? Просто ещё одна нода.

ну и нахрена мне она в 99.99% задач ? нахрена мне хранить индекс на пустоту в моих терабайтных таблицах ? это дорого. если действительно нужен посик по нулл, всегда можно применить FBI индекс.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178836
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYo.!оракл не хранит нулы в индексе, это реально глупо и невероятно дорого
Э? Что там, собственно, дорогого-то? Просто ещё одна нода.

Дмитрий. На самом деле это очень разумно. Oracle также не различает NULL и пустые строки.
Это отдельная история но думаю что все эти trick были плодом многолетнего осмысления
самой специфики строительства БД и основывались не только на реляционной алгебре
но и еще на свойствах хранения.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178844
Bubba Kush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОракл очень быстро правит мелкие дефекты в ядре а дождаться этого от PG иногда невозможно. Обычно ищется опытный сишник, сами правят ядро PG и в результате и риски и гимора еще больше.

Людям интересно, когда важный для них дефект исправят, а не когда исправят многие. В PG есть способ гарантированно получить исправление -- взять и исправить. В Оракле такого способа нет.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178855
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonвсе эти trick были плодом многолетнего осмысления
ага. все эти исторические коряги не имеют под собой никакого "многолетнего осмысления". Просто было сделано "вот так", потому что стандарта не было, и каждый лепил кто во что горазд. А с появлением стандарта ориентировались не на новых, а на старых пользователей.
Собственно, я имею в виду любой достаточно взрослый SQL-сервер, который существует лет 20-30. К примеру, у InterBase и Firebird до сих пор на уровне DDL размер сегмента блоба по умолчанию равен 80 байт (т.е. длина экрана терминала), хотя этот размер сегмента в DDL уже давно никому нахрен не нужен, а в API все драйверы и компоненты сами используют сегмент в 16к. И вообще, оно надо было для древнего препроцессора embedded sql, которым уже почти никто не пользуется.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178873
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!ну и нахрена мне она в 99.99% задач ? нахрена мне хранить индекс на пустоту в
моих терабайтных таблицах ? это дорого.
То есть нода со ключом, например, "1", не использующаяся в 99,99% задач, таки там
хранится, пусть это и дорого. А нода с "NULL" - уже не влезает. Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178880
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bubba KushmaytonОракл очень быстро правит мелкие дефекты в ядре а дождаться этого от PG иногда невозможно. Обычно ищется опытный сишник, сами правят ядро PG и в результате и риски и гимора еще больше.

Людям интересно, когда важный для них дефект исправят, а не когда исправят многие. В PG есть способ гарантированно получить исправление -- взять и исправить. В Оракле такого способа нет.
Не согласен. И продуктовые и аутсорсинговые компании являются "пользователями" ПО которое
используют. Я надеюсь у вас не возникает желания фиксить дефекты в операционке, в драйверах.
Вы - концентрируетесь на своём продукте который создаёте. А все риски вкладываете либо
в оплату лицензии либо решаете эти риски своими силами. И выбор Oracle <=> PG это не
выбор между чёрным и белым или между добром и злом. Это выбор между двух
подходов к оценке рисков.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178929
Bubba Kush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBubba Kushпропущено...


Людям интересно, когда важный для них дефект исправят, а не когда исправят многие. В PG есть способ гарантированно получить исправление -- взять и исправить. В Оракле такого способа нет.
Не согласен. И продуктовые и аутсорсинговые компании являются "пользователями" ПО которое
используют. Я надеюсь у вас не возникает желания фиксить дефекты в операционке, в драйверах.
Вы - концентрируетесь на своём продукте который создаёте. А все риски вкладываете либо
в оплату лицензии либо решаете эти риски своими силами. И выбор Oracle <=> PG это не
выбор между чёрным и белым или между добром и злом. Это выбор между двух
подходов к оценке рисков.

Вы платите за лицензию, а риски остаются с вами. К примеру, в OLAP OPTION длина столбцов в UTF-8 определяется неверно. При доступе к исходникам пофиксить пару дней, а при использовании Oracle придется костыли использовать. Стыдно просто перед заказчиком должно быть ставить то, что вы не можете исправить и что не контролируете.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178932
Bubba Kush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, один проход в отладчике, замена функции определения длины на многобайтную и компиляция.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178947
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bubba KushК примеру, в OLAP OPTION длина столбцов в UTF-8 определяется неверно. При
доступе к исходникам пофиксить пару дней, а при использовании Oracle придется костыли
использовать.
А что на эту проблему говорит Oracle Support? Неужели "Оракл очень быстро правит
мелкие дефекты в ядре" - сплошное враньё?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39178971
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bubba KushВы платите за лицензию, а риски остаются с вами. К примеру, в OLAP OPTION длина столбцов в UTF-8 определяется неверно. При доступе к исходникам пофиксить пару дней, а при использовании Oracle придется костыли использовать. Стыдно просто перед заказчиком должно быть ставить то, что вы не можете исправить и что не контролируете.
Я вас приглашаю в подфорум http://www.sql.ru/forum/oracle вместе с зарегистрированным дефектом на металинке.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179167
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYo.!ну и нахрена мне она в 99.99% задач ? нахрена мне хранить индекс на пустоту в
моих терабайтных таблицах ? это дорого.
То есть нода со ключом, например, "1", не использующаяся в 99,99% задач, таки там
хранится, пусть это и дорого. А нода с "NULL" - уже не влезает. Ню-ню...


ты можешь сделать fbi с функцией типа если поле = адын то null, если не адын то поле, и это не будет храниться. Профит от не хранения наллов на лицо)
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179205
Yo.!daunito,

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

Нет , постгрес использует упреждающее чтение файловой системы.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179217
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тролил ЧАЛа,

упреждающее чтение <> многоблочное чтение
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179222
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тролил ЧАЛаНет , постгрес использует упреждающее чтение файловой системы.
но делает это глупыми одноблочным долбижем. взрослые субд, оракл, мсскл используют ReadFileScatter() из windows api и читают разом в плоть до 128 блоков.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179234
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!но делает это глупыми одноблочным долбижем. взрослые субд, оракл, мсскл используют ReadFileScatter() из windows api и читают разом в плоть до 128 блоков.
Что в случае SSD - деньги на ветер. А при наличии кеша ФС и переопределения порядка операций, даже у обычного винта вообще не сильно различается, что уж говорить про большой контроллер.
Да Oracle велик. Но и у него есть свои слабости. Это и УРА мы, наконец, сделали строки 32Kb!!!!
Наш индекс не хранит NULL! Блин при этом тыкают это как преимущество перед СУБД, которая может хранить индекс хоть для значений от одного до пяти, и больше девяти, а все остальные нет.
Уж работу с массивами описать и того тяжелее. Даже в родной для Oracle java надо явно использовать встроенный тип характерный только для Oracle, а стандартный тип будет генерировать ошибку.
Про умный оптимизатор стоит почитать инструкцию по смене версии Oracle - или сказ о том как план гвоздями приколачивать.

Хотя Oracle реально более тяговитый грузовик и сопровождать его легче, хотя и дороже.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179249
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребят не обижайтесь но вы в Оракле полные профаны. Энтерпрайзовые ораклы стоят
поверх ASM а это решение работает минуя ReadFileScatter() и тем более Windows.

По поводу SSD(flash based devices). Оракл умеет работать с ними по "другому" и для "других"
целей. Детальнее обзор можно почитать тут:

http://www.oracle.com/technetwork/articles/systems-hardware-architecture/oracle-db-smart-flash-cache-175588.pdf
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179261
Сергей АрсеньевХотя Oracle реально более тяговитый грузовик и сопровождать его легче, хотя и дороже.

Ога ,

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

_PGA_MAX_SIZE
_SMM_PX_MAX_SIZE
_SMM_MAX_SIZE
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179294
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей АрсеньевЧто в случае SSD - деньги на ветер. А при наличии кеша ФС и переопределения порядка операций, даже у обычного винта вообще не сильно различается, что уж говорить про большой контроллер.
Да Oracle велик. Но и у него есть свои слабости. Это и УРА мы, наконец, сделали строки 32Kb!!!!

эх Сережа, именно эти архитектурные "слабости" и делают оракл #1. оракл ставят в банк, а постгрес с его строками в банк не поставят, потому что оракл с его строками вытянет нагрузку любого банка, а постгрес фиг. если ораклу нужно хранить строковые сочинения - есть CLOB, который от варчара не отличить.
полагаться на кеш ФС могут аутсайдеры, с примитивным оптимизатором. а вот оракловый оптимизатор учитывает сотни параметров, в том числе кол-во блоков таблицы в кеше. и никакой SSD долбеж одноблочным чтением не выправит, лишь несколько сократит отставание. даже на SSD один IOPs на 128 блоков будет в разы быстрее 128 IOPs по одному блоку.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179299
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonРебят не обижайтесь но вы в Оракле полные профаны. Энтерпрайзовые ораклы стоят
поверх ASM а это решение работает минуя ReadFileScatter() и тем более Windows.

в конце концов контроллер получит все тот же многоблочный запрос. которое API его сформирует совершенно не важно.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179312
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakAlexander Ryndinпропущено...
Если это OLTP, то там используются bind. т.е. полный парсинг исчезающе редкая операция. Если bind не используются, то разработчика на кол.
почитай чтоли - как раз бинд и не используется из-за приложения. А переписывать его лень.
Уха-хахахаТо что кто-то не использует bind ведь не делает парсер тормознутым. Ну и на крайняк есть CURSOR_SHARING
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179321
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinТо что кто-то не использует bind ведь не делает парсер тормознутым. Ну и на крайняк есть CURSOR_SHARINGЭтот костыль был придуман не сразу. в 10-ке кажется? Ну и решением быстрого парса не является, и опять отправляет запрос в кеш. А если его там нет?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179329
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterAlexander RyndinТо что кто-то не использует bind ведь не делает парсер тормознутым. Ну и на крайняк есть CURSOR_SHARINGЭтот костыль был придуман не сразу. в 10-ке кажется? Ну и решением быстрого парса не является, и опять отправляет запрос в кеш. А если его там нет?8i....
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179336
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic HunterAlexander RyndinТо что кто-то не использует bind ведь не делает парсер тормознутым. Ну и на крайняк есть CURSOR_SHARINGЭтот костыль был придуман не сразу. в 10-ке кажется? Ну и решением быстрого парса не является, и опять отправляет запрос в кеш. А если его там нет?При втором запуске запроса в shared pool уже будет дерево разбора и план запуска. В чем проблема?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179590
Аффтар, поверь, дешевле переписать прикладухи на бинд, нежели
сменить SQL, что есть нереальный геморрой, архитектура разная, многих фич нет в pg, но
есть в ora и наоборот, многие фичи не так как в ora работают, подводные камни в pg есть
не хуже оракловых и так далее. Обе базы сопоставимы, но у ora оптимизатор более
вылизан. Начните писать новую версию клиентов с биндов.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179596
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PG может выиграть у Оракля. И MySQL с Firebird'ом могут выиграть у Оракля. И даже FoxPro с MS Access'ом могут.

В некоторых частных случаях.

Быть может, у топикстартера как раз такой частный случай. К примеру, приложение настолько кривое или администрование СУБД поставлено настолько убого, что даже переход на PG даст выигрыш по сравнению с текущей ситуацией. А мы об этом понятия не имеем.

А в общем случае, конечно, к переходу с Oracle (даже с SE) на PG в поисках повышения производительности и к приравниванию PG к Ораклю нельзя относиться серьёзно.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179599
И самое главное .
1)прикладухи под пж всё равно потом придётся переписывать.
2)Выигрыша в скорострельности это может и не дать.
3)Под pg нужно затачивать железо - требование к дискам и к памяти особые.
4)Под pg понадобится ОЧЕНЬ хороший linux сисадмин и железячник
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179603
Victor MetelitsaА в общем случае, конечно, к переходу с Oracle (даже с SE) на PG в поисках повышения производительности и к приравниванию PG к Ораклю нельзя относиться серьёзно.
Я могу гарантировать, что тупое перекладывание запросов на другой SQL совершенно точно
положит производительность в нуль. Неважно откуда куда идёт миграция.
Посмотрите на 1С
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179629
Подпольщег4)Под pg понадобится ОЧЕНЬ хороший linux сисадмин и железячник


Если в бюджете сумму из строки
лицензионные платежи переместить в
строку ФОТ , то думаю,
что толпы хороших сисадминов
и железячников будут стоять в очереди в ОК.

.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179726
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa, автор также пишет
......Основной упор идет на то, что кривой оптимизатор запарывает всю производительность, приходится использовать кучи хинтов в запросах, а на постгресе этой проблемы быть не должно из-за более умного оптимизатора....

Помню я где-то читал что PG использует генетические алгоритмы для отбора наилучших планов.
Возможно это и есть так козырная карта о которой пишет т.н. "руководство".

Но даже в этом случае нужно какое-то моделирование. Ребят! В этой области (миграция с одной БД
на другую) практически нет экспертов которые скажут что тут будет +25% бенефита к примеру.
Это всё от очень-очень многого зависит. Всё надо пробовать. Макеты создавать. У оракла 5 видов партишионинга. Как это
замапить на PG без деградации перформанса? Никто не знает.

Как портировать PLSQL код? ХЗ. Ну вот тут что-то пишут http://www.postgresql.org/docs/7.3/static/plpgsql-porting.html
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179747
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!эх Сережа, именно эти архитектурные "слабости" и делают оракл #1. оракл ставят в банк, а постгрес с его строками в банк не поставят, потому что оракл с его строками вытянет нагрузку любого банка, а постгрес фиг.
Как показал пример Сбербанка - хороший банк и Oracle озадачить сможет. :)

Yo.!если ораклу нужно хранить строковые сочинения - есть CLOB, который от варчара не отличить.
Увы и ах - отличить. Недавно разбирался с ошибкой, когда склеивание varchar с CLOB порой приводило к NULL в результате.

Yo.!в том числе кол-во блоков таблицы в кеше. и никакой SSD долбеж одноблочным чтением не выправит,
Ну 128 запросов к контролеру пришедших за время позиционирования головки отработают не сильно медленнее 1 на всу дорожку.
С точки зрения SSD - прочитать 64 сектора в разнобой может в теории быть эффективнее, чем 128 махом. Но впрочем и чтобы добиться того, чтобы чтение лишнего нагрузило чрезмерно надо постараться.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179755
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander RyndinПри втором запуске запроса в shared pool уже будет дерево разбора и план запуска. В чем проблема?
В том, что на третьем бинде может оказаться, что план не оптимальный. :)
Статистика по сегодняшней партиции еще не собрана. И т.д. и т.п.
И в конце концов окажется что для высоконагруженного приложения с полным использованием железа все одно придем к необходимости ручной оптимизации высококлассным специалистом, а при небольшой нагрузке не видно разницы.

Но продвинутый оптимизатор - это шаг навстречу прогресса. Тут не поспоришь.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179780
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор вбросил и скрылся :)
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179845
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q.TarantinoАвтор вбросил и скрылся :)

Наверно поменял cursor_sharing на force и все взлетело.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179847
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAlexander RyndinПри втором запуске запроса в shared pool уже будет дерево разбора и план запуска. В чем проблема?
В том, что на третьем бинде может оказаться, что план не оптимальный. :)


Тогда включатся в игру всякие adaptive cursor sharing, cardinality feedback и прочее. И может самопофиксится.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179848
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев, по поводу LOB
если объём больше 200 мегабайт - в pg случаются неприятности,
а на pg_conf мне сказали, что штатная LOB, которая не bytea/text
поддерживается только для совместимости и в дальнейшем
её хотят выпилить. В oracle с этим проблем меньше. Стало быть если прикладуха
реально использует эту киллер-фичу - у разрабов будет много яркого и интересного сексу.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179855
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей АрсеньевКак показал пример Сбербанка - хороший банк и Oracle озадачить сможет. :)

один пример из десятка миллионов банков не очень показателен. тем более на фоне падений континентов у мсскл.


Сергей АрсеньевУвы и ах - отличить. Недавно разбирался с ошибкой, когда склеивание varchar с CLOB порой приводило к NULL в результате.

руки кривые, у меня я еще в 90х применял конкотенацию и substr. больше всего меня впечатлило тогда, что пхп как с варчаром работал, без всяких танцев с LOB объектами.

Сергей АрсеньевНу 128 запросов к контролеру пришедших за время позиционирования головки отработают не сильно медленнее 1 на всу дорожку.
С точки зрения SSD - прочитать 64 сектора в разнобой может в теории быть эффективнее, чем 128 махом. Но впрочем и чтобы добиться того, чтобы чтение лишнего нагрузило чрезмерно надо постараться.
к чему теоризировать, поставь DB_FILE_MULTIBLOCK_READ_COUNT=1 и посмотри сам.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39179887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу падений процессинга в Сбербанке.

Тема интересная. Я какое-то время за ней следил а потом каюсь... забил и дела были.
Разумеется Оракл тогда не ругал разве что ленивый. Но КМК причины подобных
аварий не простые. И одной инструкцией тут не отпишешся. Вобщем читаем
и вспоминаем как было.

Это-ли последняя ссылка на скруле? Прошу подтвердить кто вкурсе дел.

http://www.sql.ru/forum/953904/orakle-okazyvaetsya-vinovat
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180055
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевAlexander RyndinПри втором запуске запроса в shared pool уже будет дерево разбора и план запуска. В чем проблема?
В том, что на третьем бинде может оказаться, что план не оптимальный. :)
Статистика по сегодняшней партиции еще не собрана. И т.д. и т.п.Мы про OLTP говорим. Там такого быть не может. Для OLAP-нагрузки, естественно, этого делать не надо, но для DWH время парсинга стремится к нулю по сравнению со временем выполнения запроса.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180145
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkomyagkii_newbiQ.TarantinoАвтор вбросил и скрылся :)

Наверно поменял cursor_sharing на force и все взлетело.
Да не, читаю по вечерам )
Все у них нормально с bind переменными. Все запросы хранятся в xml файлах. Все что может меняться в запросах оформлено параметрами, работает через JDBC. Чтобы разбираться, нужно получить одобрение. Пока пишем планы и чиним мелкие баги. После переписывания нескольких запросов сложилось впечатление, что вся проблема в кривом проектировании таблиц. Связи избыточны и неочевидны, нормализация местами сильно хромает. Администрирование насколько понял, тоже из разряда дать права пользователю, посмотреть кто заблокировал сессию. Еще слишком много запросов выполняется лишних. Там где можно было передать один ID и запросом вытащить всю необходимую инфу, выполняется 30 маленьких запросов, где каждый вытаскивает кусочек информации. Например, методы getUserLastName, getUserFirstName, getUserBirthDate, getUserDocID, getDocSerialNumberById... чтобы собрать информацию о пользователе. В общем, нужно получить одобрение, доступ и тогда уже разбираться. Мне было интересно услышать мнение о целесообразности миграции вообще. Я услышал и убедился что большинство согласно с тем, что сама идея плохая. А то вдруг все переходят счастливо на постгрес и у всех производительность резко возрастает, а я буду отговаривать людей ))
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180201
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov...Ню-ню...

прошу прощения. Вам тут просветления и открытия век никто не обещал.
Но и Вам, вполне разумно, стоило бы оставить свое "ню" ровно там, откуда Вы его вытащили.

Это может сберечь Вас от сопротивление отвечать человеку, который дает основания для сомнения в понимании смысла букв, которые он использует.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180213
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyЭто может сберечь Вас от сопротивление отвечать человеку, который дает
основания для сомнения в понимании смысла букв, которые он использует.
Я один думаю, что это гуглотранслейт?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180230
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov...
Я один думаю...


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

(Это просто опознается - в Вас не т печали - значит - не может быть оставшимся места для мудрости.)
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180235
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyВозможностей много может оказаться открытыми
Хорошо, что сказали Вы это. Потому что теперь могу я свободно пальцем ткнуть в оффтопик,
где NULL ноды хранятся в B*tree индексе, и при этом вовсе не дорого оказывается такое. Но
чтобы Оракула пифиям возможность понимания открылась, им непроходимую глупость преодолеть
таки придётся.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180247
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Вы бы все-таки задумались о заточке пальца.
Это без подъебок и ухмылок, а просто - чтобы тыканье оказалось пригодным к обсуждению - не провоцируйте собеседников на "хи-хи".
От Вас большего не требуют .
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180250
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жалкая картина. Пифиям не судьба.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180253
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

ваши комменты - пустопорожняя болтовня, сгенерированная роботом, и переведенная гуглотранслэйтом.
Такое впечатление, что кто-то тестирует на форуме вариант "Элизы".
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180256
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,
ваше мнение бесценно . Элиза.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180309
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoДа не, читаю по вечерам )
ну да, как нормальный еврей.
запулил, собрал информацию, а потом выйдешь героем - как все разрулил! :)
а ведь изначально молчал что ты типа тот сторонний аналитик. теперь мы знаем как ты занимаешься анализом :) Вот они, интеграторы в действии! :) Ща все применит и сдерет с конторы лямов 10 :)
И обидно не то, что кто-то тут сможет заработать на доверчивых админах, а то что из-за таких как ты ценник на ДБА в последнее время круто падает, видимо спроса просто нет по причине, что решают проблемы наши обычные эникейшики при помощи форумов. И не надо тут кризис приплетать, все понять можно потому, сколько подобных тупых тем создается.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180368
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q.Tarantino,

я в курсе, у тебя уже бомбило в соседней теме. Не переживай, я не дба и не интегратор. И 10 лямов уж точно не срублю. Кстати, тема если ты не заметил, вполне себе холиварная и никакой конкретики не несет. Пространные рассуждения о перспективах замены оракла на постгрес с целью улучшения производительности.
А лично по твоей проблеме, жизнь все расставит на свои места, тут особо можно не беспокоиться. Кому надо все равно найдет любыми путями всю инфу. Профессионалы всегда востребованы, открыты и дружелюбны (из личных наблюдений). У меня на одной из работ был дба, который если что-то починит, то никогда не говорил как это починил и в чем была проблема. Боялся конкуренции и что его знания переймут другие. 10 лет спустя он работает все в той же шарашке за копейки и сыскал себе славу знатного мудака на весь наш небольшой город
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180372
daunito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q.TarantinoИ обидно не то, что кто-то тут сможет заработать на доверчивых админах, а то что из-за таких как ты ценник на ДБА в последнее время круто падает, видимо спроса просто нет по причине, что решают проблемы наши обычные эникейшики при помощи форумов.
да не, все не так. Контора живет с тормозами уже много лет и ДБА за все это время так ничего и не сделали. Сказали, что тут администрирование бессильно, мол, переделывайте базу. Может ценник на них не просто так падает?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180373
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoда не, все не так. Контора живет с тормозами уже много лет и ДБА за все это время так ничего и не сделали. Сказали, что тут администрирование бессильно, мол, переделывайте базу. Может ценник на них не просто так падает?ё... ну запостал бы тормоза сюды. мы-бы скопом ченить решили...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180377
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito,

при определенных усилиях, я думаю, и Оракл можно раком поставить. И ДБА тут ничего не сделает. Все зависит от разрабов.
С другими СУБД та же фигня - если разрабы отделены от админов, то обычно разрабы лепят просто жуткую чухню. Которую потом исправлять-переисправлять. Ну или экстенсивным методом - вместо HDD ставить жуткие рэйды из SSD.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39180381
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

лучше сразу на RAM-диски. они шустрее.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181211
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito... После переписывания нескольких запросов сложилось впечатление, что вся проблема в кривом проектировании таблиц. Связи избыточны и неочевидны, нормализация местами сильно хромает. ...
Кмк, с вероятностью 80% это основа проблем любой БД, независимо от СУБД.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181241
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunitoда не, все не так. Контора живет с тормозами уже много лет и ДБА за все это время так ничего и не сделали. Сказали, что тут администрирование бессильно, мол, переделывайте базу. Может ценник на них не просто так падает?
мы этого знать не можем, ведь мы даже отчета AWR не можем увидеть.
потому что-то конкретное говорить бессмысленно.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181299
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня была аналогичная ситуация с Телекомами. DBA часто ставились перед фактом
что всё плохо, и надо что-то делать. AWR и Statspack собирали много раз и анализировали.
Очень много аналитических и агрегирующих запросов типа GROUP BY ... HAVING ... ORDER..
Проиндексированы и соптимизированы с помощью SqlTune. Ничего не помогает.
Всё медленно. Всё сводилось к мысли что надо переписывать бизнес-логику.

Но к сожалению взаимодействие между сектором ДБА и разработки не было налажено.
Можно было поговорить по телефону с разработчиком но у него был свой стек
начальников который всячески блокировал любую постороннюю активность.

И вобщем все начинания и процессы оптимизации стопорились на уровне
нежелания разработчика вникать в суть оптимизации. Дескыть вы - ДБА
ваша проблема. А динамический билдер запросов который был вшит в клиента
и который позволял формировать совершенно невообразимые курсоры
до сих пор работает и флудит плохими планами.

Уже увольняясь с телекомов я писал письма с предложениями по внеднению
OLAP-подходов, но всем было пох. Думаю что так всё и осталось.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181325
Q.Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо к сожалению взаимодействие между сектором ДБА и разработки не было налажено.
Можно было поговорить по телефону с разработчиком но у него был свой стек
начальников который всячески блокировал любую постороннюю активность.
в подобных случаях недовольных пользователей надо отправлять к разработчикам. пусть они с ними общаются.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181330
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q.Tarantinoв подобных случаях недовольных пользователей надо отправлять к разработчикам. пусть они с ними общаются.
Я не хочу сворачивать в не-техническую тему. И также не хочу палить контору.
Но шишки всё равно доставались ДБА (сектору эксплуатации). Таково было
положение вещей.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181681
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovХорошо, что сказали Вы это. Потому что теперь могу я свободно пальцем ткнуть в оффтопик,
где NULL ноды хранятся в B*tree индексе

Забавно, но NULLы можно заставить хранить и ORACLE в составном индексе.
Как и в PG добавить в индекс where ... not null и получить как в Oracle.

Спор по этому поводу яйца выеденного не стоит.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181689
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевЗабавно, но NULLы можно заставить хранить и ORACLE в составном индексе.bitmap индекс тожэе хранит NULL'ы.

Сергей АрсеньевСпор по этому поводу яйца выеденного не стоит.+1, просто архитектурная особенность, зная которую никаких сложностей не будет
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181722
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевDimitry SibiryakovХорошо, что сказали Вы это. Потому что теперь могу я свободно пальцем ткнуть в оффтопик,
где NULL ноды хранятся в B*tree индексе

Забавно, но NULLы можно заставить хранить и ORACLE в составном индексе.
Как и в PG добавить в индекс where ... not null и получить как в Oracle.

Спор по этому поводу яйца выеденного не стоит.
NULL-s можно заменить на свою волшебную константу и использовать через NVL.
При этом мы получим как бонус индексирование.

Но я-бы предложил другой подход. Как известно (ох как я люблю эту фразу!)
или "есть общепризнанный факт" что индекс эффективен когда объём выборки
не превышает 7%.

Или еще меньше. Я уж не помню. В разные времена эта цифира была разной.
И чем больше становились базы - тем меньше была эта пропорция.

И вобщем-то принудительное индексирование NULL тяготеет к переосмыслению
этого принципа.

Мы должны индексировать ПОЛЕЗНОЕ.

А пустота - это бесполезное.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181725
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо я-бы предложил другой подход. Как известно (ох как я люблю эту фразу!) или
"есть общепризнанный факт" что индекс эффективен когда объём выборки не превышает 7%.

Мы должны индексировать ПОЛЕЗНОЕ.
То есть из индекса можно выкинуть любое значение, количество записей с которым превышает
7% от общего числа? Странно, что Оракул так не делает...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181732
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, при чём тут Oracle?

Это обычно стоимостное правило для Sequental/Scattered reads.
Основано на физике работы жёсткого диска.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181736
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И опять-же... из индекса ничего выкидывать не надо. Правило касается
не размера индекса. А размера выбоки из него.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181739
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonпри чём тут Oracle?
Ну это же именно он выкидывает NULL потому что хранить его "слишком дорого", как выше
сказали. А другие значения, хранить которые не только дорого, но и бесполезно, поскольку
использование индекса по ним невыгодно, он почему-то не выкидывает. Хотя может. Странный он...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181762
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСергей Арсеньевпропущено...

Забавно, но NULLы можно заставить хранить и ORACLE в составном индексе.
Как и в PG добавить в индекс where ... not null и получить как в Oracle.

Спор по этому поводу яйца выеденного не стоит.
NULL-s можно заменить на свою волшебную константу и использовать через NVL.
При этом мы получим как бонус индексирование.

Но я-бы предложил другой подход. Как известно (ох как я люблю эту фразу!)
или "есть общепризнанный факт" что индекс эффективен когда объём выборки
не превышает 7%.

Или еще меньше. Я уж не помню. В разные времена эта цифира была разной.
И чем больше становились базы - тем меньше была эта пропорция.

И вобщем-то принудительное индексирование NULL тяготеет к переосмыслению
этого принципа.

Мы должны индексировать ПОЛЕЗНОЕ.

А пустота - это бесполезное.если оно бесполезное - зачем же его используют?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181791
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergSuperесли оно бесполезное - зачем же его используют?
Это вопрос к архитектору. Возможно поиск WHERE field IS NULL
следовало-бы переделать WHERE field = 'somevalue'
и тогда вопрос звучал бы по другому.

Но кто-то упорно делает ставку на ценность пустых полей
в кортеже.

Вобщем... я признаю что поиск WHERE field IS NULL имеет место быть.
Как анализ. Или агрегация чего-то..

Но как вы себе представляете OLTP транзакцию с таким поиском?

Априори я напоминаю что NULL неуникален и запрос может
вернуть много полей для нашей OLTP транзакции.

И зачем нам нужна OLTP транзакция с неуникальной селективностью?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181818
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАприори я напоминаю что NULL неуникален и запрос может вернуть много полей
для нашей OLTP транзакции.
Ты не поверишь, но для не-уникального индекса любое значение не уникально и запрос на
равенство ему может вернуть много записей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39181854
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВобщем... я признаю что поиск WHERE field IS NULL имеет место быть.
Как анализ. Или агрегация чего-то..вот мне как-то пришлось мигрировать с одной схему в другую практически все таблицы, ключи использовались составные естественные, где nullов было порядочно. Например [код+дата окончания действия]
таблиц порядка 4000, вручную делать новые индексы нереально
вот меня сильно тогда подвела неиндексированность nullов
авторАприори я напоминаю что NULL неуникален и запрос может
вернуть много полей для нашей OLTP транзакции.не только первичные ключи индексируются
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182305
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSergSuperесли оно бесполезное - зачем же его используют?
Это вопрос к архитектору. Возможно поиск WHERE field IS NULL
следовало-бы переделать WHERE field = 'somevalue'
и тогда вопрос звучал бы по другому.
Но согласись хранить somevalue вместо пустоты там где не введены данные - это тот еще архитектурный подход.

А для того, чтобы найти строки, в которых до сих пор не заполнили определенное поле. Вполне себе осмысленная и не бесполезная операция.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182343
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто продавливаю свой аргумент в пользу CRUD/OLTP.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182508
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги. Давайте немного отвлечемся и вспомним SQL и основы проектирования БД.

Вспомним картинку. Нарисована таблица. Где часть полей - ключевые. Инстанциированы.
Часть полей REQURED (NOT NULL). И часть полей - NULLABLE. Опциональные поля.
Таких полей может быть много. Яркий пример - географические справочники и классификаторы.
Там вечно - вакуум. И еще много подобных generic-примеров. Незаполненные
анкеты физлиц. e.t.c.

Что такое есть NULL с точки зрения реляционной алгебры?
Это не константа.
Не ноль.
Не false.
Это дырка. Выколотое значение. В таблицах иногда его обозначают как прочерк. Общая
суть - пустое значение элемента в кортеже. Неинициализированное. Базы данных еще
на этапе создания предполагают что не все поля могут быть инстанциированы. Это разумно.
Данных нет. И таких дырок может быть ... ну 25% от общего количества. А то и больше.
Всё зависит от рода информации.

С точки зрения системы хранения NULL-s - это вакуум. Его можно наделять разными
поисковыми смыслами, но в первую очередь, исходя из принципов Реляционной алгебры
это полное отсутствие информации.

Разумеется storage-engines могут учитывать эту особенность или нет. ЕМНИП Oracle
не резеревирует место в db_blocks в таблицах для пустых значений. И это разумно.

Давайте зададим вопрос. Разумно-ли аллоцировать место в индексах для NULL's?
Особенно беря в расчёт процент пустых значений. Представьте себе константу
которая "лупит" по B+Tree, порождая только листовые значения со ссылкой на
data_rows.

Давайте зададим другой вопрос. Индекс строиться для очень быстрых операций
извлечения инфы. Какой смысл очень быстро извлекать пачку NULL-s? Может
это неверный дизайн и эти загадочне NULL-s rows имеет смысл положить
в таблицу-отстойник?

Напоследок хочу сказать что опция VIRTUAL COLUMN в Oracle позволяет
трансформировать любое значение для индексации. Но оно того стоит?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182525
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ таких дырок может быть ... ну 25% от общего количества. А то и больше.

Дальше можно не читать. Так любому значению можно от балды назначить любой удобный процент
распределения и объявить, что его включение в индекс бессмысленно. Причём с тех же самых
доводов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182546
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДавайте зададим вопрос. Разумно-ли аллоцировать место в индексах для NULL's?
не смотря на то, что NULL это отсутствие значения, в компьютере как-то все же приходится хранить, есть значение или его нет (null).
Для этого используются индикаторы. Например некий бит = 0 - значение есть. бит = 1 - значения нет, т.е. null.

Так что хранить хотя бы 1 бит на null все же приходится.

Кроме того, сам null точно так же равноправен, как и другие значения, например 1, 2, 3.
Представьте себе миллион записей с равномерным распределением значений 1,2, 3. Создание индекса по этим значением вас не напрягает? А поиск where field = 1 ?
А теперь добавим к 1, 2, 3 так же равномерно распределенное null (т.е. получается по 25% на каждое значение - 1, 2, 3 и null).
Чем null провинился, что мы его выкинем из индекса?
Чем отличается
where field = 1
от
where field is null ?
По-моему, оба этих условия поиска равноправны. Но в итоге что - для field = 1 индекс будет использоваться оптимизатором, а для field is null поедет фуллскан?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182603
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие DBMS индексируют null by default.

Дайте мне список pls. Я просто хочу владеть информацией хотя-бы на уровне названий.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182868
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА какие DBMS индексируют null by default.

Дайте мне список pls. Я просто хочу владеть информацией хотя-бы на уровне названий.
MS SQL
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182874
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakmaytonА какие DBMS индексируют null by default.

Дайте мне список pls. Я просто хочу владеть информацией хотя-бы на уровне названий.
MS SQL
да и DB2
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182880
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Firebird
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182898
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА какие DBMS индексируют null by default. Caché (в некоторых случаях в индексе значение маркера для NULL может быть другим).
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182902
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок. Спасибо. Почитал про DB2. Насколько я понял, индексация NULL - это опция про создании
индекса. Верно?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182913
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал оракловый форум. Workarounds.

Здесь - предлагают partitioning
http://www.sql.ru/forum/1102209/indeksirovanie-tolko-zapisey-s-null

Тоже интересно. При биткартовый индекс и прочее.
http://www.sql.ru/forum/105511/indeks-i-null-znachenie


Пишет к сож. ныне покойный Андрей Криушин. Царствие ему...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39182996
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧто такое есть NULL с точки зрения реляционной алгебры?
Это не константа.
Не ноль.
Не false.
Это дырка. Выколотое значение.тем не менее это информация
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187188
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daunito Еще слишком много запросов выполняется лишних. Там где можно было передать один ID и запросом вытащить всю необходимую инфу, выполняется 30 маленьких запросов, где каждый вытаскивает кусочек информации. Например, методы getUserLastName, getUserFirstName, getUserBirthDate, getUserDocID, getDocSerialNumberById... чтобы собрать информацию о пользователе.
Я такое безумие уже видел (в приложении "Аэ..." фирмы U) - и, быть может даже, что это те же самые люди делали.

Когда-то я ругал (и до сих пор ругаю) пару фирм (H и I) за их любовь к хранимым процедурам и курсорам. Потом оказалось, что они ещё молодцы по сравнению с фирмой L с их базоданново-агностическим приложением на JBoss'е, которые на малейший чих тянут данные внутрь app-сервера и манипулируют ими там.

Но в "Аэ%" оказалось нечто особенное. К примеру, когда в Hybernate люди пытались сделать вид, будто никакой базы данных не существует и они чисто с Java работают, в "Аэ%" люди делали вид, что они работают... с диалектом Объектного Паскаля a la Delphi. Изобразили внутри базы тотальную иерархию наподобие TObject, от которого всё прямо или косвенно наследуется, каждый класс - дополнительная таблица, пара (!) пакетов на подкласс, каждое изменение - отдельный апдейт (т.е. вместа update xxx set firstname=x, lastname=y where id=z надо выполнить setfirstname и затем setlastname (после прохождения цепочки вызовов будут выполнены два update - даже Hybernate так не поступает)). Быстро такое работать в принципе не может.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187193
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonVictor Metelitsa, автор также пишет
......Основной упор идет на то, что кривой оптимизатор запарывает всю производительность, приходится использовать кучи хинтов в запросах, а на постгресе этой проблемы быть не должно из-за более умного оптимизатора....

Помню я где-то читал что PG использует генетические алгоритмы для отбора наилучших планов.
Возможно это и есть так козырная карта о которой пишет т.н. "руководство".
Пусть "автор" прочитает
Cost Base Oracle Fundamentals. Jonathan Lewis
Troubleshooting Oracle Performance (second edition). Christian Antognini
а потом говорит про более умный оптимизатор PG. Проблемы такие, что скорее можно говорить про более глупых разработчиков PG. Подумать только, хинты им реализовывать западло. Вот IBM от такой глупости отказалась.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187201
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОк. Спасибо. Почитал про DB2. Насколько я понял, индексация NULL - это опция про создании
индекса. Верно?
Не совсем. DB2 NULL'ы всегда индексировала, но когда решили взять курс на попытку переманивания ораклистов, реализовали, в том числе, и возможность неиндексирования NULL'ов.

В самом деле, бывают случаи, когда выгодно NULL'ы индексировать, и бывают случая, когда выгодно, чтобы NULL'ов не было. Если выбирать одно из двух, то сложно сказать, что предпочесть. И хорошо, когда есть обе возможности.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187224
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsamaytonОк. Спасибо. Почитал про DB2. Насколько я понял, индексация NULL - это опция про создании
индекса. Верно?
Не совсем. DB2 NULL'ы всегда индексировала, но когда решили взять курс на попытку переманивания ораклистов, реализовали, в том числе, и возможность неиндексирования NULL'ов.

В самом деле, бывают случаи, когда выгодно NULL'ы индексировать, и бывают случая, когда выгодно, чтобы NULL'ов не было. Если выбирать одно из двух, то сложно сказать, что предпочесть. И хорошо, когда есть обе возможности.на самом деле корень тут в том, что оракл предпочитает вообще NULL'ы не хранить и если последние поля в конце строки(row) то их и не хранят,т.е. не занимают вообще места. Поэтому если зная это размещать опциональные nullable поля последними, то и размер базы уменьшается и нагрузка на процессор снижается.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187228
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderесли зная это размещать опциональные nullable поля последними, то и размер
базы уменьшается и нагрузка на процессор снижается.
Ну да, на каждый NULL же тратится целый бит. Или всё ещё байт?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187230
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

ты меня про MS SQL спрашиваешь? Не знаешь сколько там тратится?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187232
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще этот вопрос не стоит и выеденного яйца - захочешь индексировать null'ы - сможешь, оракл дает несколько возможностей. А в целом, вопрос этот чисто архитектурный и никоим образом не является минусом. Он очень схож с архитектурным подходом с EAV - хранить ли NULL в EAV и при каких условиях, т.е. заводить ли лишнюю строку в EAV-таблице если value является null: иногда выбирают что надо, иногда - нет... зависит от...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187234
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще смешно все это смешно Судя по вашим придиркам в оракле все очень и очень хорошо, если докапываетесь только до индексирования NULL'ов
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187235
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут опять надо сравнивать разные DBMS.
http://stackoverflow.com/questions/556363/space-used-by-nulls-in-database In Oracle, it depends on type of the column and its position in the row.

If the NULL columns are last in the row, then they don't take any space at all. Oracle prepends the total row size to each row, everything that doesn't fit is considered NULL.

If there is some non-NULL data after a NULL column, then the NULL is stored as a single byte of 0xFF (that is, NULL type).

Empty VARCHAR2 is equivalent to NULL. If you test the type of a literal NULL returned from SELECT list, it will give you a VARCHAR2(0)
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187250
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa
В самом деле, бывают случаи, когда выгодно NULL'ы индексировать, и бывают случая, когда выгодно, чтобы NULL'ов не было. Если выбирать одно из двух, то сложно сказать, что предпочесть. И хорошо, когда есть обе возможности.
ога, помню как у нас неделю висел труп программиста заюзавшего в мсскл "обе возможности" set ansi null
жестокая была смерть ...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187328
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderИ вообще смешно все это смешно Судя по вашим придиркам в оракле все очень и очень хорошо, если докапываетесь только до индексирования NULL'ов
Нет ничего такого, где всё было бы хорошо.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187342
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovxtenderесли зная это размещать опциональные nullable поля последними, то и размер
базы уменьшается и нагрузка на процессор снижается.
Ну да, на каждый NULL же тратится целый бит. Или всё ещё байт?..

Интереснее то, что для типичных условий a la where x = ?, where x < ? и т.п., null'ы в колонке X в самом деле не нужны и в Oracle иногда можно на этом очень неплохо выиграть. А ещё можно реализовать такие unique constraint'ы, когда можно запихать в колонку неограниченное количество null'ов (а когда null'ы индексируются, получается, что один null равен другому и более одного не запихать).

Неудобно же, когда условия выглядят как where x is null (workaround'ы мне кажутся неизящненькими; однако заметим, что для условий наподобие where x is null and y = ? ораклячьи индексы очень наже годятся, ибо в индексе по (y,x) нужные null'ы проиндексируются).

Теперь надо как-то считать - для скольких запросов отсутствие null'ов в индексе помогает, для скольких мешает, какова величина помощи/помехи, какова критичность того или иного запроса. Как много людей считали такую статистику для своих приложений? Мне кажется, что where x is null характерны больше для админских/разработческих дел, одноразовых запросов, но не для готовых приложений (исключая, быть может, эмуляцию not exists через внешнее соединение xxx left join yyy on xxx.x=yyy.x where yyy.x is null, причём там от индекса по yyy(x) отнюдь не требуется хранение null'лв).
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187374
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Victor Metelitsa, мы просим вас не писать сообщения которые не имеют отношения к Сравнению СУБД
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187431
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовал обыкновеннейшую, безобиднейшую, всем известную поговорку "В огороде бузина, а в Киеве дядька", только слегка модернизированную (любой вспомнит то, что я вспомнил).

В самом деле, что бы ни имелось в виду под "set ansi nulll" в MS SQL (я не в курсе), особой связи с возможностью индексировать в DB2 так и эдак не прослеживается. Если (предположим) set ansi null в MS SQL повлияет на семантику запросов, потенциальую выдачу неправильных результатов, то DB2-шные индексы повлияют всего лишь на производительность.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187442
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЕсли (предположим) set ansi null в MS SQL повлияет на семантику
запросов
Ага, он от этого внезапно перестанет имитировать Оракула с его неразличением NULL и пустой
строки. Естественно у пифий от этого срывает крышу и они превращаются в гарпий.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187479
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaА ещё можно реализовать такие unique constraint'ы, когда можно запихать в колонку неограниченное количество null'ов (а когда null'ы индексируются, получается, что один null равен другому и более одного не запихать).

хотите сказать, что СУБД индексирующие NULL этого сделать не могут?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39187520
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисVictor MetelitsaА ещё можно реализовать такие unique constraint'ы, когда можно запихать в колонку неограниченное количество null'ов (а когда null'ы индексируются, получается, что один null равен другому и более одного не запихать).

хотите сказать, что СУБД индексирующие NULL этого сделать не могут?

DB2 это делать не могла.
http://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000919.html?cp=SSEPGG_10.5.0/2-12-7-80
When UNIQUE is used, null values are treated as any other values. For example, if the key is a single column that may contain null values, that column may contain no more than one null value.(имеет смысл, когда не EXCLUDE NULL KEYS, который Specifies that an index entry is not created when all parts of the index key contain the null value.)

ну, правда, в явном виде unique-constraint там вообще
http://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000927.html?cp=SSEPGG_10.5.0/2-12-7-101
UNIQUE (column-name, ...)
Defines a unique key composed of the identified columns. The identified columns must be defined as NOT NULL.

но я про constraints в широком смысле.

а про "все СУБД, индексирующие NULL'ы" или "IBM-еры в принципе не могли бы это реализовать, даже если бы захотели", естественно, такое говорить глупо.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188086
Dimitry SibiryakovТак любому значению можно от балды назначить любой удобный процент
распределения и объявить, что его включение в индекс бессмысленно.

Одолел.
Да, бессмысленно.
Хочешь убедиться?
Собери таблицу на несколько десятков/сотен лямов, в которой столбец имеет 10 уникальных значений.
Проиндексируй этот столбец и посмотри план селекта с предикатом по данному столбцу.
Там будет фуллскан.
Потому что дешевле сделать "<кол-во блоков данных, занимаемых таблицей>/DB_MULTIBLOCK_READ_COUNT" обращений к диску, чем несколько млн вытаскиваний по индексному чтению.
Можешь, если очень уж упорот упёрт, влупить хинт, принуждающий бежать по индексу, и снять тайминг времени выполнения суммирования по всей таблице.
Сто раз же разжеваны вопросы селективности индекса и ее влияния на эффективность использования индексов...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188102
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый индексаторСто раз же разжеваны вопросы селективности индекса и ее влияния на
эффективность использования индексов...
Индексатор такой старый, что не слышал о гистограммах?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188306
Dimitry SibiryakovСтарый индексаторСто раз же разжеваны вопросы селективности индекса и ее влияния на
эффективность использования индексов...
Индексатор такой старый, что не слышал о гистограммах?..
Еще как слышал.
Только тебе талдычат про нецелесообразность индексирования NULL, когда его отнюдь не скромный процент от общего числа индексируемых строк, и про целесообразность его превращения в не-NULL когда процент содержащих его строк мал, вследствие чего индексирование FBI вида Nvl(This_Col,'IT IS NULL!!!') повлияет на объем быстродействие индекса в пренебрежимо малой степени.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188344
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Пони бегает по кругу и в уме круги считает..." (с)

Старый индексаторТолько тебе талдычат про нецелесообразность индексирования NULL,
когда его отнюдь не скромный процент от общего числа индексируемых строк
С какого перепугу именно селективность NULL считается априори не скромной, а для "1" или
"2" - всё в порядке и в индекс они всегда включаются?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188385
Dimitry Sibiryakov"Пони бегает по кругу и в уме круги считает..." (с)

Старый индексаторТолько тебе талдычат про нецелесообразность индексирования NULL,
когда его отнюдь не скромный процент от общего числа индексируемых строк
С какого перепугу именно селективность NULL считается априори не скромной, а для "1" или
"2" - всё в порядке и в индекс они всегда включаются?
А с какого перепугу ты решил что я утверждаю это?
Ты мой пост нечитал?
Там про 10 уникальных значений , если что, и про то, что далеко не всегда нужен индекс...
И таки да - тебе уже сказали что искать по "Where ... IS NULL" когда пустых большинство - бессмысленно, а когда их мало - целесообразно использовать вместо них осмысленные значения (которые войдут в индекс).
Какие из букв тебе непонятны?
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188397
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый индексаторКакие из букв тебе непонятны?
Откуда взять магическое значение, которое не пересечётся с любым другим значением в полном
диапазоне конкретного типа данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188437
Dimitry SibiryakovСтарый индексаторКакие из букв тебе непонятны?
Откуда взять магическое значение, которое не пересечётся с любым другим значением в полном
диапазоне конкретного типа данных.
В справочнике, являющимся источником LOV, предусмотреть оное.
Как будто первый раз замужем, ей-богу...
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188844
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неиндексирование null-ов - это такие пустяки, мелкое раздражение (с вещами вроде отсутствия log'ов у Firebird'а совершенно не сопоставимо). На этом можно придумывать занятные трюки.

Вот так, например:

пусть поле f принимает значения 'A', 'B', 'C', ...
и "почти всегда" в нём 'A',
а нам нужно выбрать where f <> 'A'

Antognini описывает такой подход:
сделать индекс по nullif(f, 'A')
и выбирать where not nullif(f, 'A') is null.

Изящное решение, малюсенький индекс.

Но, правда, не помню, чтобы мне когда-то приходилось применять такое на практике. В типичных запросах эта особенность Oracle как-то незаметна.
...
Рейтинг: 0 / 0
Миграция с Oracle на Postgres
    #39188856
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати,
where nullif(f, 'A') = ?
когда вы точно знаете, что ? не равен 'A', тоже неплохо. Для 'A' index entries нет, selectivity гарантированно сильная.
...
Рейтинг: 0 / 0
143 сообщений из 143, показаны все 6 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Миграция с Oracle на Postgres
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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