powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что есть в oracle и нет в postgresql?
25 сообщений из 271, страница 7 из 11
Что есть в oracle и нет в postgresql?
    #40098763
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvik
Вставлю свои пять копеек.

Яндекс часть своих сервисов перевёл с Оракла на Постгрес. Как раз чтобы сэкономить деньги. Стало быть, замена вполне возможна.

Но не для критических высоконагруженных систем.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098764
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
petalvik
Вставлю свои пять копеек.

Яндекс часть своих сервисов перевёл с Оракла на Постгрес. Как раз чтобы сэкономить деньги. Стало быть, замена вполне возможна.

Но не для критических высоконагруженных систем.


Почему нет?
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098774
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

у постгре родовая травма в части поддержки multiversion concurrency control.
на вакууме далеко в высонагруженных системах не уедешь.
Хотя его (вакуум) и пытаются как-то приводить в чувство....
И, думаю, что у любой системы к которой приложил руки Джим Старки, такой проблемы нет в столь болезненной форме.
Т.е., не только у Oracle database с этим сейчас более-менее приемлемо.

Не помрет сбер от замены субд. Горе обычно от ума, а не от смены поставщика самого по себе, бывает...
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098777
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
SQL*Plus
пропущено...

Но не для критических высоконагруженных систем.


Почему нет?


Потому что Postgress не может обеспечить работу высоконагруженных систем,
а Oracle может обеспечить и обеспечивает работу высоконагруженных систем.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098852
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby
mad_nazgul,

у постгре родовая травма в части поддержки multiversion concurrency control.
на вакууме далеко в высонагруженных системах не уедешь.
Хотя его (вакуум) и пытаются как-то приводить в чувство....
И, думаю, что у любой системы к которой приложил руки Джим Старки, такой проблемы нет в столь болезненной форме.
Т.е., не только у Oracle database с этим сейчас более-менее приемлемо.

Не помрет сбер от замены субд. Горе обычно от ума, а не от смены поставщика самого по себе, бывает...


Есть разные стратегии построения высоконагруженных систем.
Можно построить архитектуру так, чтобы какая СУРБД используется было не важно.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098854
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
mad_nazgul
пропущено...


Почему нет?


Потому что Postgress не может обеспечить работу высоконагруженных систем,
а Oracle может обеспечить и обеспечивает работу высоконагруженных систем.


Если я скажу, что у меня были проекты, на которых Oracle тупила и висла? :-)
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098864
H5N1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul

Если я скажу, что у меня были проекты, на которых Oracle тупила и висла? :-)

то мы спишем на криворукость очередного загорелого. пока у постгреса не появится оракловый undo (то что они zheap называют) толкаться в высшей лиги постгресу не получится.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С другой стороны если у нас не OLTP а хранилище - может и Postgres будет не так уж плох.

P.S. А может и свалка файлов будет не плоха...
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098901
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
С другой стороны если у нас не OLTP а хранилище - может и Postgres будет не так уж плох.

...

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

В части OLTP я бы сейчас предложил к NuoDB присмотреться.
Она весьма интересный штрих пытается в архитектуру системы вписать.
И, похоже, перешла от состояния жизни в пеленках к хождению в штанах на лямках.
Т.е. - уже можно разглядывать - что же там получается.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40098903
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
...

Есть разные стратегии построения высоконагруженных систем.
Можно построить архитектуру так, чтобы какая СУРБД используется было не важно.


даже если вы сможете свою архитектуру построить так, чтобы она жила совсем без update-а,
не выглядит как самое разумное брать систему с дорогим insert-ом,
в расчёте на высокую нагрузку в части именно этого самого insert-а.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40099038
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby

В части OLTP я бы сейчас предложил к NuoDB присмотреться.

Там есть слово distributed. А это заставляет напрягать плечевые мышцы... Был Оракл-кластер.
Все летало и свистело. А теперь вдруг distributed... Бох его знает как надо будет переделать
подход к задаче или как пересмотреть бизнес под этим аспектом.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40099080
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
упор делается на "эластичную масштабируемость" с сохранением транзакционных гарантий.

обещано прозрачное перераспределение нагрузки между зарегистрированными узлами
с подключением к обработке "по необходимости" и простым восстановлением работоспособности узла после потери соединения.
Ясно, что кроме поддержки "глобального кеша" надо порешать массу специфически сетевых проблем.
Но, кажется, это первая среди "твердых" в смысле ACID систем, которая явно замахивается на подобну тему, не боясь быть обсмеянной.


Джим Старки, в смысле mvcc, исторически центральная фигура, давшая первую из вменяемо работоспособных реализаций.
У меня есть вера, что он, в любом случае, не допустит негодной реализации распределенной транзакционной БД.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115398
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
uber из-за этого пришлось уйти с postgres

Почитал сие от убера - https://eng.uber.com/postgres-to-mysql-migration/
Они там особо акцентируют внимание на избыточное IO (из-за того что в PG immutable rows) для их очень специфического use-case с дохрена индексами на таблице и регулярными updates.
Отдельно улыбнуло как они перетирают баг с репликацией. Ну так, в том же Оракле баги на любой вкус и цвет от неработающего PK до несогласованных данных при merge. Не говоря уже про классические ORA-03113 или ORA-00600.
А какие-то моменты из стать типа отсутствия логической репликации уже давно не актуальны.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115399
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег

...
Отдельно улыбнуло как они перетирают баг с репликацией. Ну так, в том же Оракле баги на любой вкус и цвет...

Именно вот это на текущий глубоко не актуально и беспредельно не интересно.

Вся псевдоинженерия построения ПО за последние 55-65 лет сумела целиком и плавно перетечь из состояния надежды и ожидания -
"а вдруг мы всё-таки сможем построить", математическим, или еще каким чудесным образом с помощью Аджайла,
ПО без багов, к убеждению, что "ПО без багов не бывает ни при каких обстоятельствах".

Начиная с этого момента приоритеты и предпочтения располагаются где-то на перпендикуляре от критики по части надежности и т.п.

Дело не столько в том, что ни Oracle ни Postgres не позиционируют свое ПО, как годное для работы на станции "Мир",
сколько в том, что при выборе такой странной, малопонятной и полубессмысленной штуковины как СУБД, может оказаться
несопоставимо важнее гарантия вида: "Это да, работаем мы как умеем, но будьте верены, ни завтра, ни послезавтра, вас не бросим".

Все остальные истории, начиная от того, стоит это денег или нет, и заканчивая тем, кто, кого и по какому основанию круче - по сути - левые.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115401
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
В обратную сторону - у postgresql есть замечательная штука с объявлением окна, общего для нескольких функций. Прям хочется такое же.
У Оракла тоже.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Connected to:
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL> with t(id) as (select level from dual connect by level <= 5)
  2  select id, sum(id) over w s, avg(id) over w a
  3    from t
  4  window w as (order by id rows between 1 preceding and 1 following);

        ID          S          A
---------- ---------- ----------
         1          3        1.5
         2          6          2
         3          9          3
         4         12          4
         5          9        4.5

Еще в начале 2020 обсуждали в Оракловой ветке.

Другое дело, что в PG всплывают интересные детали касательно производительности.
https://www.percona.com/blog/2019/02/21/parallel-queries-in-postgresql/ Windowed functions and ordered-set aggregate functions are non-parallel.Это убивает всякий смысл в оконных функциях для хранилищ имхо.

env
Честно говоря, не знаю, насколько сейчас хорошо в postgesql с секционированием, что можно, какие поддерживаются способы и сочетания. Может кто подсказать?
hash/list/range как базовые вещи присутствуют
https://www.postgresql.org/docs/current/ddl-partitioning.html

Если хочется interval partitioning или subpartitions то допилено в EDB Postgres Advanced Server...
https://www.enterprisedb.com/postgres-tutorials/interval-partitioning-edb-postgres-advanced-server-auto-create-new-partition
https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/user-guides/database-compatibility-for-oracle-developers-guide/9.6/Database_Compatibility_for_Oracle_Developers_Guide_v9.6.1.104.html#

Или про улучшения в самой последней версии https://www.youtube.com/watch?v=07QaIsX9rKs
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115403
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никанор Кузьмич
Swa111
Есть одна фишка PostgreSQL которой нет в Oracle, которая очень понравилась - это обновление/удаление/вставка данных одним запросом и возможно даже в разные таблицы.
Прямо вот совсем-совсем нет? В Oracle есть:
1) вставка и/или обновление одним запросом - MERGE
2) вставка в несколько таблиц, в том числе с условиями, - INSERT ALL
А как это выглядит в postgres? Подкиньте ссылочку.

Пример
Дока
Никанор Кузьмич
Swa111
Ну и такая мелочь как нативная поддержка JSON
Не знаю, насколько там все нативно в Postgres, но в Oracle есть поддержка json. С версии 12.1, емнип.
С версии 12 JSON в Оракле хранился банально как varchar (или clob) и производительность оставляла желать лучшего.
С версии 21 появился binary JSON format. Производительность стала процентов на 40% получше. Не в разы, но хоть что-то.
Аналогично в PG есть json и jsonb .

Но оракловая JSON dot notation намного кривее смотрится чем JSON subscripting в PG.
Код: sql
1.
2.
3.
4.
5.
6.
7.
postgres=# with t(my_json) as
postgres-# (select '{"my_array": [true, "str", 666], "tags": {"a": 1, "b": null}}'::jsonb)
postgres-# select t.my_json['tags'] tags, t.my_json['tags']['a'] tag_a from t;
        tags         | tag_a
---------------------+-------
 {"a": 1, "b": null} | 1
(1 row)



Ибо JSON dot notation делает язык SQL регистрозависимым (ибо теги в JSON регистро зависимые) что бредово само по себе.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115407
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
H5N1
и что же это за задачи ? в oltp постгрес со своим вакумом и мусором в датафайлах уже сильно проигрывает даже mysql. тот же убер хорошо расписал на сколько все плохо с мусором и индексами у постгрес под oltp нагрузкой. убер вынужден был мигрировать на mysql.
в аналитике те же яйца, нет ни кластера, ни полноценных партишенов, ни колончатых структур. те кто юзают постгрес в аналитике, юзают полностью переделанную вариацию grenplum, которая mpp и за деньги.
Амазон допилил PG для OLTP и назвал его Aurora.
Если кратко - ряд архитектурных проблем для OLTP удалось решить используя интеллектуальнй storage layer (основанный на других технологиях амазона).
Подробнее с разбивкой по главам https://www.youtube.com/watch?v=Ul-j5fKfv2k
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115410
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
ptr128
Или наоборот втрое медленней на более мощном железе. )))

Может быть и так, конечно. Правда, традиционные результаты PG в TPC тестах делают этот вариант маловероятным.
Можно увидеть на основании каких традиционных результатов сделано сие заявление?
Предположу что там должны быть результаты PG и Oracle на идентичном железе.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115412
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
Можно увидеть на основании каких традиционных результатов сделано сие заявление?
Предположу что там должны быть результаты PG и Oracle на идентичном железе.

Сначала я подумал, что Вы искусно троллите. Но судя по второй фразе, Вы просто не вкурили шутку.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115416
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
1. Задача хранить миллиард векторов длиной от тысячи до сотни тысяч наблюдений. Они не изменяются, но постоянно добавляются новые. Эти вектора используются для анализа где-то (пусть в Hadoop). Причем не все сразу, а выборочно, по ряду индекированных аналитик. Oracle или PostgreSQL справится с этим эффективней? Если вспомнить, что в Oracle массивов нет, а в PostgreSQL - есть.
В Оракл имеется nested tables но есть два момента
1)
Чтоб SQL-но добраться до отдельных элементов надо их unnest, а это очень дорого.
Поэтому если цель работать с данными строго SQL-но то Оракл проигрывает тем движкам (включая PG) которые умеют обращаться к элементам массива из SQL по индексу.
А вот PL/SQLем вполне удобно выбирать неявным курсором те элементы массивов которые интересует. (это же можно делать и другими клиентами, например через jdbc)
SQL-но тоже можно извратиться как в спойлере, но не рекомендуется в частности из-за пункта 2.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SQL> create table tc (id int, arr numbers) nested table arr store as arr_tbl
  2  /

Table created.

SQL> insert into tc
  2  select 1 id, numbers(1) arr from dual
  3  union all select 2, numbers(11,22) from dual
  4  union all select 3, numbers(123,456,789) from dual
  5  /

3 rows created.

SQL> with function f(n in numbers, i in int) return number as
  2  begin if i <= n.count then return n(i); else return null; end if; end;
  3  select id, f(arr, 1) x1, f(arr, 2) x2
  4    from tc
  5  /

        ID         X1         X2
---------- ---------- ----------
         1          1
         2         11         22
         3        123        456


2)
Оракл не гарантирует порядок возврата элементов в nested table (хотя как показывает практика они всегда в том порядке в каком были в массиве при записи).
Но это намекает, что Оракл вряд ли когда-то допилит обращение по индексу элемента массива в запросе. Напомню в PL/SQL это было испокон веков.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> set serveroutput on
SQL> begin
  2    for r in (select * from tc) loop
  3      dbms_output.put_line(r.arr(1));
  4    end loop;
  5  end;
  6  /
1
11
123

PL/SQL procedure successfully completed.


ptr128
2. Задача выполнять в запросе миллионы относительно коротких функций на R. Oracle или PostgreSQL справится с этим эффективней? Если вспомнить, что R выполняется в среде PostgreSQL, как встроенный язык со временем обращения меньше 1 мс, а Oracle вынужден через IPC коммуницировать с отдельным сервисом?
Оракл запускает движок R из себя
PG это делает как-то оптимальнее?
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115417
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Кобанчег
Можно увидеть на основании каких традиционных результатов сделано сие заявление?
Предположу что там должны быть результаты PG и Oracle на идентичном железе.

Сначала я подумал, что Вы искусно троллите. Но судя по второй фразе, Вы просто не вкурили шутку.
Какой-то пруф как Оракл уделывает PG в TPC тестах таки интересно было бы увидеть.
Про архитектурную "кривизну" с immutable rows, отсутствие undo и vacuum уже сказали.
Увидеть бы еще количественное измерение архитектурного превосходства или отставания.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115418
Фотография Кобанчег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из малоприятных неожиданностей PG еще можно вспомнить, что `To support MVCC, PostgreSQL takes "snapshots" frequently`.
Заявлено, что в 14-й версии это значительно оптимизировано, но если вспомнить, что необходимости в этом в Оракл в принципе нет...
https://techcommunity.microsoft.com/t5/azure-database-for-postgresql/improving-postgres-connection-scalability-snapshots/ba-p/1806462
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115487
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчегно если вспомнить, что необходимости в этом в Оракл в принципе нет...

Ну правильно, нет MVCC - нет необходимости в снапшотах. Поэтому они быстро
становятся too old.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115495
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

mvcc - это всего лишь зонтик, шапочная идея общего вида.
Ее реальное исполнение может выражаться если не тысячами, то десятками несовпадающих реализаций.
Известно, что первая реализация от IBM просто не была выпущена именно потому, что авторы признали
фактические ее характеристики негодными для боевого использования даже для тех мизерных объемов,
под которые проектировалась система в 70е.

Признанный по суду умершим Джим Грей очень долго, почти до последнего дня считал, что mvcc это не просто отстойная
в инженерном отношении конструкция, которую принципиально нельзя заставить работать быстро, из-за неизбежно необходимого
сборщика мусора (хотя считать так уже после выхода Oracle 7 было более чем странно), но негодная для баз данных в
формально-математическом отношении конструкция, содержащая в себе логическую ошибку, и поверх этого вообще нельзя построить правильный ACID.

А сейчас не просто все, кто не имел версионности раньше, как-то ее пристроили себе, а и практически нет новых проектов, которые начинались бы не с mvcc в той или иной форме.
mvcc стал де-факто стандартным способом думать об устройстве субд.
...
Рейтинг: 0 / 0
Что есть в oracle и нет в postgresql?
    #40115531
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кобанчег
Какой-то пруф как Оракл уделывает PG в TPC тестах таки интересно было бы увидеть.

Да я бы тоже не прочь увидеть. Только PG никогда не участвовал в TPC тестах. Что как бы намекает на то, какой результат он рассчитывал там показать.
...
Рейтинг: 0 / 0
25 сообщений из 271, страница 7 из 11
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Что есть в oracle и нет в postgresql?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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