|
|
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Вернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 18:43 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Она вроде вообще не стоит. Почитать концепты, все связанное с Undo и попытаться думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 18:49 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGru, в дополнение к концепции ораклов, Томас Кайт "Oracle для профессионалов....". Там есть глава "Таблицы базы данных". Стоит прочитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 19:03 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruпочему проблема так остро не стоит? Потому что у него - внезапно! - в базе нет мусора. Нет мусора - нечего пылесосить - нет пылесоса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 19:23 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruпочему проблема так остро не стоит?чтобы не колоться и не плакать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 19:26 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Тут вкратце описана реализации MVCC в Оракл и Постгресе: https://www.enterprisedb.com/well-known-databases-use-different-approaches-mvcc Vacuum в Оракле не нужен, но есть другие проблемы, связанные с MVCC. Например, ORA-01555. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 20:33 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruВернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то Потому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2017, 23:07 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
RA\/ENПотому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло. Да, лучше все "г*но" копить в UNDO, а потом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали. В каждой из реализаций есть свои плюсы и минусы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 09:39 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
mvccпотом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали.Да нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 15:36 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
TakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье. Ну да, консистентные отчёты без ОЛАП - для лохов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 15:47 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovTakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье. Ну да, консистентные отчёты без ОЛАП - для лохов. Что, простите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 16:12 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopЧто, простите? Поясняю: кто не может построить сходящийся отчёт без запросов, приводящих к "Snapshot too old" - лох. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 17:30 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
TakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье. А как быть, например, с Delayed Block Cleanout? Еще раз: у каждой из реализаций есть свои плюсы и минусы. Реализация Оракл - не беспроблемный идеал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 17:37 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovdbms_photoshopЧто, простите? Поясняю: кто не может построить сходящийся отчёт без запросов, приводящих к "Snapshot too old" - лох. Спорное утверждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 17:44 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
mvcc, А что не так с delayed block cleanout? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 23:19 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
mvccRA\/ENПотому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло. Да, лучше все "г*но" копить в UNDO, а потом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали. В каждой из реализаций есть свои плюсы и минусы. 1. UNDO все равно экономичнее по месту. 2. Если штатные долгие запросы падают на продуктиве - значит, базу проектировал рукож*п. Если ad-hoc запосы - рукож*п их автор. Если железо не тянет - то с большой долей вероятности оракл не куплен, а скачан, и специалисты с ним работающие недостаточной квалификации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 06:29 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
RA\/EN1. UNDO все равно экономичнее по месту Экономизм постгреса определяется своевременностью вакуума. То есть для какого-то редкого варианта регламентных работ по массовому обновлению место займется и освободится. Более того, в случае обновления порезанными транзакциями и в отсутствие долгого читатателя не потребуется много места. А ундо надо держать достаточным на все случаи жизни, так как уменьшить его посложнее, команд вакуум. В регулярной работе "логический" объем без разницы. Фактический имеет нюансы. Апдейт одного поля в постгресе создает копию строки целиком. зато делит ничего не занимает. Проблема вакуума, что ему может помешать долгая транзакция. Если же его не делать, запросы могут начать радикально тормозить. То есть альтернатива ora-1555 для долгих запросов - это принудительное отключение долгих транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 13:05 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Господа, а что в этой теме следует понимать под вакуумом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 13:39 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AmKadГоспода, а что в этой теме следует понимать под вакуумом? В чистом контексте Оракла следует понимать следующий запрос в гугле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 14:22 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
д0kХShtock это Это офтопик :)Я спросил про вакуум, и мне дали на него ссылку. И причем тут твой линк на Undo, я так и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 14:53 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AmKadд0kХпропущено... Это офтопик :)Я спросил про вакуум, и мне дали на него ссылку. И причем тут твой линк на Undo, я так и не понял. мой линк в своем многообразии в полном объеме раскрывает тему почему в оракле нет вакума и что нужно делать если ну очень хочется завести аналогичную вакуму процедуру. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 15:15 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
ундевид, Как это делит ничего не занимает? Во-первых, делит ничего не освобождает, а во вторых, все равно любая операция в постгре сохраняет какие строки были удалены/вставлены, иначе mvcc как раз не было бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2017, 15:41 |
|
||
|
Почему в 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 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatch... на терабайты в день, в RAM просто не помещаются... Добавить RAM ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:48 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchА вот когда начинается вопрос вставки многих десятков тысяч фактов в секунду (всякие биржевые роботы, показы рекламы и т.п.) и обновлений оных, то Oracle вполне ожидаемо... ну не то чтобы садится в лужу, но начинает работать не настолько хорошо, быстро и с несколько НЕ гарантированным временем реакции. ?! что за бред-то? С этим обычно вообще никаких проблем не бывает, кроме как конкуренции за последние блоки индекса, которые тем не менее очень легко лечатся. Для каких-нибудь сотовых операторов это вообще мелочи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:54 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchнужно максимально эффективно иметь возможность получить из базы данных последнее состояние.для максимально эффективного обычно используют scd 4 - то есть в одной таблице как раз хранятся только текущие состояния, а прошлые в отдельной исторической таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:01 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevdbpatch... на терабайты в день, в RAM просто не помещаются... Добавить RAM ))) физически невозможно, и так все слоты забиты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:02 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderDimitry SibiryakovОбычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно, делит вместе с сущностью. dbpatchИ все что остается в этом случае - это все UPDATE и даже DELETE приводить к INSERT, даже есть концепция такая, кажется называется Temporal Databaseгоспидя, откуда у вас такая каша то в головах?! Во-первых, большинство реализаций SCD2/Temporal Validity включают в себя апдейт текущей записи и инсерт новой. Во-вторых, это никоим образом не оптимизация по доступу, т.к. селекты в данном случае становятся на порядки медленнее, а их как раз обычно на порядки больше, чем инсертов/апдейтов/делитов вместе взятых. у тебя каша в голове? ну ок. да, иногда в подобных реализациях есть апдейт. если нагрузка небольшая, то даже работает - ну, когда один поток в 8000recs/s падает до 700rec/s за счет апдейта и тебя это вполне устраивает :) селекты на порядки медленнее? селектов на порядки больше, это на сколько? в два раза, в десять раз медленее? а как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)? или ты решил животрепещуще описать свою базу данных размером в 10 гигабайт с проводками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:06 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatch, awr dump в студию, там и посчитаем сколько у тебя селектов/сколько инсертов или дальше будешь нести бред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:10 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchа как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)?тогда хоть в файлики, хоть в хадуп пишите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:13 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderdbpatch, awr dump в студию, там и посчитаем сколько у тебя селектов/сколько инсертов или дальше будешь нести бред? больше тебе ничего не нужно запостать? и да, мы не делаем AWR, ибо это довольно глупая и бессмысленная трата времени, мерять среднее по больнице. DBA делать нечего - пусть они их и рассматривают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:19 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderdbpatchа как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)?тогда хоть в файлики, хоть в хадуп пишите... хадуп не устроил в части ресурсоемкости-стабильности, да и селекты из него делать несколько мрачновато. а так да, задача примерно из этой области ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:22 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchSELECT v2 ... FROM NOT EXISTS ( v1.id = v2.id and v1.change_time > v2.change_time)dbpatchнам нужно максимально эффективно иметь возможность получить из базы данных последнее состояниеда уж все с вами ясно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:30 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
xtenderdbpatchSELECT v2 ... FROM NOT EXISTS ( v1.id = v2.id and v1.change_time > v2.change_time)dbpatchнам нужно максимально эффективно иметь возможность получить из базы данных последнее состояниеда уж все с вами ясно... это хорошо, что тебе уже все ясно, а то создалось впечатление, что ты нечитатель - я вроде довольно подробно описал специфику задачи, для которой UNDO не подходит и нужно делать вакуум вручную, а ты начал про превышение на порядки SELECT-ов над UPDATE видно, что ты что-то хотел сказать о своем, о наболевшем, но... не получилось? бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:46 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatchА вот когда начинается вопрос вставки многих десятков тысяч фактов в секунду (всякие биржевые роботы, показы рекламы и т.п.) и обновлений оных, то 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, 16:23 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
dbpatch задачи, для которой UNDO не подходит и нужно делать вакуум вручнуюСначала ты заменил апдейт ни инсерт, теперь делаешь вручную вакуум ундо. Лучше напиши для твоей "специфики" конкретные цифры сколько куда пишется байт по какой операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 16:58 |
|
||
|
Почему в Oracle нет vacuum
|
|||
|---|---|---|---|
|
#18+
AlexGruВернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то MVCC в Oracle и PostgreSQL . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2017, 19:18 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1886129]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
172ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
103ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 537ms |

| 0 / 0 |
