|
|
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderКак это делит ничего не занимает?Помимо пометки строки в таблице, новых данных не возникает и дополнительного места не требуется. В оракле "пометка" плюс новое место в ундо. Но действительно, в постгресе стоит рассматривать помеченную удалением строку как элемент унды, так как ее место нельзя занимать, пока доудаленная версия строки может потребоваться какой-либо из незавершенных транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 16:54 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
ундевидАпдейт одного поля в постгресе создает копию строки целиком. зато делит ничего не занимает.А теперь подумай что же в типичной работе с БД бывает чаще и насколько - апдейт или делит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 16:59 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
апдейт делитаА теперь подумай что же в типичной работе с БД бывает чаще и насколько - апдейт или делит? Если БД спроектирована нормально, а операторы не вносят чушь, которую потом приходится изменять на правильную - делит. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 17:08 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, бред какой-то... Это уже неправильное использование базы... То есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 18:21 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
или еще хуже - сущности вообще не должны изменяться? это уже лог, а не база ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 18:22 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderТо есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт? Обычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно, делит вместе с сущностью. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 18:33 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderили еще хуже - сущности вообще не должны изменяться? это уже лог, а не базаЭто BigData, сэр. Правда Hive уже стал поддерживать updates правда кривенько. Dimitry SibiryakovxtenderТо есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт? Обычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно, делит вместе с сущностью. Ты в предыдущем сообщении говорил, что delete чаще, а тут уже "возможно". Вбрасывать надо продуманнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 19:19 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Хотя главный тролль, конечно, ТС. Этот форум позволяет удобненько смотреть статистику по сообщениям и видно, что персонаж минимум 10 лет с Ораклом, при этом он ровно год не писал в форум, чтоб появиться, вбросить и снова исчезнуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 19:22 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopа тут уже "возможно". Это "возможно", если кто не понял, относится к "вместе с сущностью", ибо удалять историю состояний сущности без ней самой как-то не слишком осмысленное действо... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 21:03 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovdbms_photoshopа тут уже "возможно". Это "возможно", если кто не понял, относится к "вместе с сущностью", ибо удалять историю состояний сущности без ней самой как-то не слишком осмысленное действо... Вот как раз удаление записей в штатном режиме основных бизнес-процессов как раз наводит на мысль, что уровень бизнеса явно не соответствует тем компаниям, где нужен оракл с поддержкой . Даже мучительное натягивание ентерпрайзных масштабов на стандартную редакцию к такому не приводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 21:10 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopХотя главный тролль, конечно, ТС. Этот форум позволяет удобненько смотреть статистику по сообщениям и видно, что персонаж минимум 10 лет с Ораклом, при этом он ровно год не писал в форум, чтоб появиться, вбросить и снова исчезнуть. Уважаемый, это не совсем так. Последний год не было нужды пользоваться форумом. Сейчас приперло все везде переводить с Oracle на Postgres (импортозамещение жеж) и стали возникать вопросы. Для многих нет особой разницы субд и субд, только одна дорогая, а другая дешевая. Логично ведь, что "при прочих равных", надо переходить на дешёвую. Мне вот интересна аналогия СУБД с ТС. Oracle - гелик v12 biturbo в максималке. Можно и на работу ездить и по лесу. И мелкую речку переехать. И трактор тащить из грязи. В общем сильный, надежный, удобный универсал. Всякие разные MongoDb это как узкоспециализированные решения - квадрик, катер - хорошо выполняют свою узкоспец. задачу. А что в данном контексте есть postgres - четырка, тоже многие ездят и на работу и в леса, дешевая сама, дешевые запчасти, комфорт не очень, особо по грязи не проедешь. Ну как-то так. С другой стороны все в праве и по средствам выбирать. Частная страховая или банки могут позволить себе Oracle и пожалуйста, а гос сектор платит не своими, а нашими, поэтому и на четырках могут поездить. Действительно ведь так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 11:27 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruгос сектор платит не своими, а нашими, поэтому ...Чтобы делать какие-то выводы, нужно сначала сравнить бюджеты регионов 2013 и 2017 по статьям, связанным с информационными системами. На сколько сократились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 11:45 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
-2-, Не могу сказать на сколько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 11:53 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruУважаемый ...Потрудись в следующий раз избегать обращений как к официанту. Не совсем понятно к чему этот поток сознания про гелики, катера, Mongo DB, реки и леса. Еще немного одушевленных персонажей и может вполне себе получиться детская сказочка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:41 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruСейчас приперло все везде переводить с Oracle на Postgres (импортозамещение жеж) и стали возникать вопросы. Всегда интересовал вопрос зачем что-то куда-то переводить, если можно просто не платить за поддержку, я как-то особой разницы (с т.з. поддержки) не вижу между ораклом без поддержки и PosgreSQL с "поддержкой сообщества", у этого "сообщества" вообще самая популярная рекомендация выглядит как "если что-то тупит, то нужно первым делом сделать vacuum full analyze - вдруг перестанет тупить" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:48 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
А вообще, смысл очевиден. За 15 лет номинальный ВВП вырос в 30 раз в рублях и почти в 10 раз в долларах! При значительно ))) меньшем росте реального ВВП ))). А Oracle всюду, куда можно, уже внедрили. Как расти и развиваться дальше? Правильно - внедрять PostgreSQL. Он может и бесплатный, но внедряют то все равно за деньги! Вот ВВП еще раз в 30 и вырастет.... Разумеется, номинальный. Ну если не вырастит ВВП, то на хлеб с маслом, икрой, виллу в Италии нужным людям все равно хватит ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:01 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, совсем не дальновидно кмк, PostgreSQL догонит по фичам оракл лет через десять, а дальше что? на другую базу двигать? а вдруг такой фокус уже не прокатит? Нужно сразу брать что-то с перспективой на 20-30 лет, линтер какой-нибудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:14 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruВернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то Как уже сказали выше - в Oracle вместо write ahead log - реализован механизм UNDO. Для баз данных с относительно небольшим объемом вставки/обновления данных подобная реализация вполне приемлима. Т.е. для задач класса бухгалтерия - 2.5 бухалтера вносят максимум по три изменения в секунду. В этих условиях вполне можно позволить себе и не такую роскошь - а еще и форинкеи, идексы и прочие праймари-уникеи всякие, чай мейнфрейм класс выдержит это все рандомное чтение-запись на микроскопической нагрузке (99% случаев применения RDBMS). А вот когда начинается вопрос вставки многих десятков тысяч фактов в секунду (всякие биржевые роботы, показы рекламы и т.п.) и обновлений оных, то Oracle вполне ожидаемо... ну не то чтобы садится в лужу, но начинает работать не настолько хорошо, быстро и с несколько НЕ гарантированным временем реакции. И все что остается в этом случае - это все UPDATE и даже DELETE приводить к INSERT, даже есть концепция такая, кажется называется Temporal Database (Oracle Workplace - частный случай) https://en.wikipedia.org/wiki/Temporal_database Т.е. база данных только делает INSERT (его время реакции ожидамое, UNDO не используется), вставляя эдакий version_id или change_time (primary key, естественно, уже невозможен) А текущее/последнее состояние делать через SELECT v2 ... FROM NOT EXISTS ( v1.id = v2.id and v1.change_time > v2.change_time) Тем самым получается тот самый WAL. А vacuum потом можно сделать уже вручную - через CREATE new_table AS SELECT ... NOT EXISTS, когда данные из OLTP класса перейдут в DHW - т.е. факты уже обновляться не будут, только читаться, это уже скорее задача ETL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:53 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchКак уже сказали выше - в Oracle вместо write ahead log - реализован механизм UNDO. Вообще-то write ahead log это redo, так что undo реализован не "вместо" а "в дополнение". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:56 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovdbpatchКак уже сказали выше - в Oracle вместо write ahead log - реализован механизм UNDO. Вообще-то write ahead log это redo, так что undo реализован не "вместо" а "в дополнение". Называй как хочешь, но да есть концепция, по сути, write log only баз данных. Частный случай - Interbase/Firebird (могу ошибаться), или из мира NoSQL/Embedded - LevelDB, LightningDB Когда любой DML это по сути операция copy on write, т.е. гарантированно делается только один iops. Т.е. пишется, по сути, только лог, вся база данных - это лишь redo, а data/undo и прочего - просто нет как класса, только логи. Имеет свое применение - потоковая запись (чтоб головки диска не гонять - рандомная запись - это мегабайт в секунду, линейная - 100 мегабайт, даже в случае SSD писать линейно намного быстрее) И в Oracle такое можно достичь только принудительным путем - делать только INSERT (приводя UPDATE/DELETE к INSERT), да еще и с APPEND NOLOGGING - т.е. датафайл использовать просто как лог файл (изврат, но иногда приходится и на такое идти, чтоб справиться с потоком фактов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:02 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Offtopic on Андрей ПанфиловLeonid Kudryavtsev, совсем не дальновидно кмк, PostgreSQL догонит по фичам оракл лет через десять, а дальше что? на другую базу двигать? а вдруг такой фокус уже не прокатит? Нужно сразу брать что-то с перспективой на 20-30 лет, линтер какой-нибудь. Присутствовал при разговоре по этому поводу в крупной структуре нашей газовой отрасли.... Если уж импортозамещение и все равно деньги Газпром в бюджете выделит, нафига Вам буржуйный PostgreSQL, лучше уж возьмите Линтер. К тому же, по __функциям__ он больше подходил под их задачу. Ну и команда разработчиков Линтера обещала всяческую помощь в проекте (т..к. для них он был важен, как минимум с точки зрения престижа) - никакого понимание у заказчика (около гос. структуры) не нашлось. PostgreSQL и все. Но на деле, сказали просто... мы для галочки на PostgreSQL перейдем, раз очень большое начальство хочет, а как был Oracle, так он у нас и останется. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:05 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchИ в Oracle такое можно достичь только принудительным путем.... А зачем в Oracle такое достигать? redo log на отдельном диске, а запись в файлы базы идет асинхронно. Дальше можно тюнить размер buffer и кол-во dirty buffer'ом. AFAIK По крайне мере в 8'ке. В PostgreSQL так же. Если же подходить к настройке экземпляра по принципу "Oracle умный, ему виднее" ( C ) админы, то никакое принуждение не поможет ))). IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:21 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevdbpatchИ в Oracle такое можно достичь только принудительным путем.... А зачем в Oracle такое достигать? redo log на отдельном диске, а запись в файлы базы идет асинхронно. Дальше можно тюнить размер buffer и кол-во dirty buffer'ом. AFAIK По крайне мере в 8'ке. В PostgreSQL так же. Если же подходить к настройке экземпляра по принципу "Oracle умный, ему виднее" ( C ) админы, то никакое принуждение не поможет ))). IMHO случаи бывают разные. к примеру тебе нужно выключить DR - т.е. не писать на стендбай, ибо сетевой трафик ограничен оптолинком в гигабит. но только для этой таблицы, а остальные таблицы - писать честно, с логами и прочими. т.е. в течение дня ты вставляешь факты просто в датафайлы, recovery нам не нужен ибо копия данных все равно есть на стороне аппсервера, а вот потом делаешь вакуум (последнее состояние) и уже его отправляешь в DWH при этом фактов очень много, на терабайты в день, в RAM просто не помещаются, обновления оных приводят к дисковому IO, со всеми вытекающими задача выглядит наверное непонятной и слегка идиотичной, но, на самом деле, проста как дверь - у нас сотни миллионов фактов в день с минимум 3-4 обновлениями каждого, нам нужно максимально эффективно иметь возможность получить из базы данных последнее состояние. т.е. сотни миллионов мелких nested-loop на UPDATE/DELETE превращаются в один большой hash-join по требованию, по строкам, которые только INSERT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:29 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОбычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно, делит вместе с сущностью. dbpatchИ все что остается в этом случае - это все UPDATE и даже DELETE приводить к INSERT, даже есть концепция такая, кажется называется Temporal Databaseгоспидя, откуда у вас такая каша то в головах?! Во-первых, большинство реализаций SCD2/Temporal Validity включают в себя апдейт текущей записи и инсерт новой. Во-вторых, это никоим образом не оптимизация по доступу, т.к. селекты в данном случае становятся на порядки медленнее, а их как раз обычно на порядки больше, чем инсертов/апдейтов/делитов вместе взятых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:46 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39434414&tid=1886129]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
204ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 543ms |

| 0 / 0 |
