|
|
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Всем привет. Прошу строго не судить за данную тему. Чем отличается архитектура PostgreSQL от Oracle ? Возможно есть описание архитектуры PostgreSQL в картинках (буду очень благодарен за ссылки). Какое отводится место в применении PostgreSQL в высоконагруженных проектах (в том же Hadoop'е)? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 23:54 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцов, тема довольно обширна. вот несколько ссылок с картинками из гугла: http://raghavt.blogspot.in/2011/04/postgresql-90-architecture.html http://raghavt.blogspot.in/2011/04/postgresql-90-memory-processes.html http://dbrang.tistory.com/762 про различия в имплементации mvcc можно тут почитать потом наверное можно переходить к чтению документации. там много что есть (например, см. часть internals главы 59, 47), но нужно знать, что искать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 07:16 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Станислав Клевцов, Я бы выделил следующие отличия. Версионность и транзакции версионность в ORACLE реализована на уровне блоков, в PostgreSQL — на уровне записей. предыдущие версии блоков ORACLE помещает в табличную область UNDO, PostgreSQL просто добавляет новую запись к таблице. в результате в ORACLE данные в таблицах/индексах всегда самые новые, пройти по уникальному индексу для подсчета записей или же пройтись index-only — пожалуйста! в PostgreSQL же все данные сразу, поэтому индексы хранят по несколько указателей для одной логической записи. В результате IndexScan всегда (практически) обращается к таблице (хотя в плане это явно не показывается). Index-only в PostgreSQL появился с версии 9.1, но он требует, чтобы таблица была вакуумирована — для интенсивно используемых таблиц проблематично. также таблицы в PostgreSQL “распухают” из-за старых версий логических записей. Вакуум призван с этим бороться, но на практике это очень занятная часть администрирования. в ORACLE можно словить “snapshot too old” если в UNDO не нашлось старой версии блока, которая соответствует SCN сессии откат транзакций в ORACLE долгий, т.к. происходит копирования блоков между UNDO и таблицами, в PostgreSQL все быстро. ну и самая большая вкусняшка — в PostgreSQL DDL тоже транзакционный, но стоит смотреть доки, т.к. могут быть эффекты (скажем, TRUNCATE можно откатить, но результат становиться виден до завершения транзацкии). в PostgreSQL реализован уровень изоляции SERIALIZABLE по настоящему. Администрирование в ORACLE одна инстанция == одна база (кажется в 12-м есть возможность засунуть несколько баз в инстанцию, но они сами не рекомендуют для продукции). В PostgreSQL — много баз в кластере. в ORACLE схема и пользователь суть одно и тоже, в PostgreSQL они независимы. в PostgreSQL нет синонимов, есть search_path Репликация и Standby (много вкусного!) в PostgreSQL сразу из коробки в PostgreSQL табличные области есть, но нельзя восстановить только одну область. Восстанавливается всегда весь кластер. посмотреть что происходит в PostgreSQL сейчас можно только косвенно, средств контроля как у ORACLE (longops, wait events) нету (этот и предыдущий пункт местных админов очень удручает). Очень хороши презенташки Брюса Момжана (Bruce Momjian) по внутрянке и по фишечкам . Старая, но крайне информативная статься Грега Смита (Greg Smith) по чекпойнтам . Его же книжка PostgreSQL High Performance считается одной из лучших по теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 09:49 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
На мое имхо - главная и принципиальнейшая фишка - подход к хинтованию. Постгрес сообщество этому противится изо всех сил - и хинты в постгресе в явном виде не используются, а обходные маневры не рекомендуются, и считаются моветоном. В оракле строго наоборот - заброс без пары хинтов - деньги на ветер. В итоге Оракл - самая хинтонасыщенная и хинтолюбимая программистами субд в мире. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 10:36 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Ivan DurakВ оракле строго наоборот - заброс без пары хинтов - деньги на ветер.не преувеличивай. В оракле, на радость админов, есть возможность управлять планом без изменения запроса добавлением хинтов. Для oltp, где преобладает доступ по ключевым полям, хинты редкость. А для dwh вполне часто, тем более таблицы могут меняться существенно и собирать по ним полную статистику накладно. Но вот что иногда печалит, хинты это комментарии, которые могут игнорироваться оптимизатором и нет их валидации и жесткой зависимости (инвалидации) на упоминаемые в хинте объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 12:44 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
p2. Для oltp, где преобладает доступ по ключевым полям, хинты редкость. . так уж и редкость ?? Есть субд где хинты юзаются чаще??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 14:01 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Ivan DurakЕсть субд где хинты юзаются чаще???Чтобы утверждать за "чаще", нужна сколько-нибудь достоверная статистика. Моя непрезентабельная выборка замечала "хинты" в mssql-базах достаточно часто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 14:12 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
p2.Ivan DurakЕсть субд где хинты юзаются чаще???Чтобы утверждать за "чаще", нужна сколько-нибудь достоверная статистика. Моя непрезентабельная выборка замечала "хинты" в mssql-базах достаточно часто. часто, но реже чем в оракле на порядок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 14:13 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vyegorovСтанислав Клевцов, Я бы выделил следующие отличия. Версионность и транзакции версионность в ORACLE реализована на уровне блоков, в PostgreSQL — на уровне записей. предыдущие версии блоков ORACLE помещает в табличную область UNDO, PostgreSQL просто добавляет новую запись к таблице. в результате в ORACLE данные в таблицах/индексах всегда самые новые, пройти по уникальному индексу для подсчета записей или же пройтись index-only — пожалуйста! в PostgreSQL же все данные сразу, поэтому индексы хранят по несколько указателей для одной логической записи. В результате IndexScan всегда (практически) обращается к таблице (хотя в плане это явно не показывается). Index-only в PostgreSQL появился с версии 9.1, но он требует, чтобы таблица была вакуумирована — для интенсивно используемых таблиц проблематично. также таблицы в PostgreSQL “распухают” из-за старых версий логических записей. Вакуум призван с этим бороться, но на практике это очень занятная часть администрирования. в ORACLE можно словить “snapshot too old” если в UNDO не нашлось старой версии блока, которая соответствует SCN сессии откат транзакций в ORACLE долгий, т.к. происходит копирования блоков между UNDO и таблицами, в PostgreSQL все быстро. ну и самая большая вкусняшка — в PostgreSQL DDL тоже транзакционный, но стоит смотреть доки, т.к. могут быть эффекты (скажем, TRUNCATE можно откатить, но результат становиться виден до завершения транзацкии). в PostgreSQL реализован уровень изоляции SERIALIZABLE по настоящему. Администрирование в ORACLE одна инстанция == одна база (кажется в 12-м есть возможность засунуть несколько баз в инстанцию, но они сами не рекомендуют для продукции). В PostgreSQL — много баз в кластере. в ORACLE схема и пользователь суть одно и тоже, в PostgreSQL они независимы. в PostgreSQL нет синонимов, есть search_path Репликация и Standby (много вкусного!) в PostgreSQL сразу из коробки в PostgreSQL табличные области есть, но нельзя восстановить только одну область. Восстанавливается всегда весь кластер. посмотреть что происходит в PostgreSQL сейчас можно только косвенно, средств контроля как у ORACLE (longops, wait events) нету (этот и предыдущий пункт местных админов очень удручает). Очень хороши презенташки Брюса Момжана (Bruce Momjian) по внутрянке и по фишечкам . Старая, но крайне информативная статься Грега Смита (Greg Smith) по чекпойнтам . Его же книжка PostgreSQL High Performance считается одной из лучших по теме. Спасибо за инфу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 23:23 |
|
||
|
Архитектура PostgreSQL
|
|||
|---|---|---|---|
|
#18+
vyegorovСтанислав Клевцов, Я бы выделил следующие отличия. Версионность и транзакции версионность в ORACLE реализована на уровне блоков, в PostgreSQL — на уровне записей. предыдущие версии блоков ORACLE помещает в табличную область UNDO, PostgreSQL просто добавляет новую запись к таблице. в результате в ORACLE данные в таблицах/индексах всегда самые новые, пройти по уникальному индексу для подсчета записей или же пройтись index-only — пожалуйста! Я бы назвал эти утверждения относительно Оракла очень смелыми и достаточно спорными. Да, реализация версионности в оракле и PG разные , грубо говоря, PG "настоящий" версионник, а оракл хранить старые версии записей в сегменте отката. Т.е. PG хранит записи с разными версиями на страницах данных, а оракл хранит на страницах данных только последнюю закоммиченную, а если нужны старые, они восстанавливаются на основе данных из сегмента отката. Но вот что оракл в сегменте отката будет сохранять целые блоки данных, вместо дельты одной изменившейся записи -- это очень было бы глупо, и я уверен, что это не так. К сож. точно сказать, что это не так, я не могу, а рыть доки по ораклу нет желания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2015, 17:36 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38980760&tid=1997912]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 415ms |

| 0 / 0 |
