powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему в Oracle нет vacuum
64 сообщений из 64, показаны все 3 страниц
Почему в Oracle нет vacuum
    #39433121
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433125
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она вроде вообще не стоит.
Почитать концепты, все связанное с Undo и попытаться думать.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433126
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433128
Фотография Vladimir Filin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru,
в дополнение к концепции ораклов,
Томас Кайт "Oracle для профессионалов....". Там есть глава "Таблицы базы данных". Стоит прочитать.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433136
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruпочему проблема так остро не стоит?
Потому что у него - внезапно! - в базе нет мусора. Нет мусора - нечего пылесосить - нет
пылесоса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433137
AlexGruпочему проблема так остро не стоит?чтобы не колоться и не плакать.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433162
mvcc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут вкратце описана реализации MVCC в Оракл и Постгресе:
https://www.enterprisedb.com/well-known-databases-use-different-approaches-mvcc

Vacuum в Оракле не нужен, но есть другие проблемы, связанные с MVCC. Например, ORA-01555.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433202
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruВернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то
Потому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433313
mvcc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RA\/ENПотому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло.

Да, лучше все "г*но" копить в UNDO, а потом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали.
В каждой из реализаций есть свои плюсы и минусы.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433572
Фотография Takurava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvccпотом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали.Да нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433586
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье.

Ну да, консистентные отчёты без ОЛАП - для лохов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433615
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovTakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье.

Ну да, консистентные отчёты без ОЛАП - для лохов.
Что, простите?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433678
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopЧто, простите?
Поясняю: кто не может построить сходящийся отчёт без запросов, приводящих к "Snapshot too
old" - лох.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433683
mvcc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TakuravaДа нечего запускать курсоры на четыре часа по таблицам - и будет тебе щастье.
А как быть, например, с Delayed Block Cleanout?
Еще раз: у каждой из реализаций есть свои плюсы и минусы. Реализация Оракл - не беспроблемный идеал.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433690
XMLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovdbms_photoshopЧто, простите?
Поясняю: кто не может построить сходящийся отчёт без запросов, приводящих к "Snapshot too
old" - лох.

Спорное утверждение.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433821
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvcc,

А что не так с delayed block cleanout?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39433866
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mvccRA\/ENПотому что инженеры в Oracle не додумались сделать настолько через ж*пу, как в Postgre. Память и ресурсы были дорогие и копить тонны г*вна до ночи в голову разработчикам не пришло.

Да, лучше все "г*но" копить в UNDO, а потом еще долго тюнить undo_retention и размер, чтобы долгие запросы не падали.
В каждой из реализаций есть свои плюсы и минусы.
1. UNDO все равно экономичнее по месту.
2. Если штатные долгие запросы падают на продуктиве - значит, базу проектировал рукож*п. Если ad-hoc запосы - рукож*п их автор. Если железо не тянет - то с большой долей вероятности оракл не куплен, а скачан, и специалисты с ним работающие недостаточной квалификации
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434123
ундевид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RA\/EN1. UNDO все равно экономичнее по месту
Экономизм постгреса определяется своевременностью вакуума. То есть для какого-то редкого варианта регламентных работ по массовому обновлению место займется и освободится. Более того, в случае обновления порезанными транзакциями и в отсутствие долгого читатателя не потребуется много места.
А ундо надо держать достаточным на все случаи жизни, так как уменьшить его посложнее, команд вакуум.

В регулярной работе "логический" объем без разницы. Фактический имеет нюансы. Апдейт одного поля в постгресе создает копию строки целиком. зато делит ничего не занимает.

Проблема вакуума, что ему может помешать долгая транзакция. Если же его не делать, запросы могут начать радикально тормозить. То есть альтернатива ora-1555 для долгих запросов - это принудительное отключение долгих транзакций.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434154
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, а что в этой теме следует понимать под вакуумом?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434176
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadГоспода, а что в этой теме следует понимать под вакуумом?

В чистом контексте Оракла следует понимать следующий запрос в гугле.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434193
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434207
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shtock это


Это офтопик :)
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434213
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
д0kХShtock это
Это офтопик :)Я спросил про вакуум, и мне дали на него ссылку. И причем тут твой линк на Undo, я так и не понял.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434237
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadд0kХпропущено...

Это офтопик :)Я спросил про вакуум, и мне дали на него ссылку. И причем тут твой линк на Undo, я так и не понял.

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

Как это делит ничего не занимает? Во-первых, делит ничего не освобождает, а во вторых, все равно любая операция в постгре сохраняет какие строки были удалены/вставлены, иначе mvcc как раз не было бы.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434344
xtenderКак это делит ничего не занимает?Помимо пометки строки в таблице, новых данных не возникает и дополнительного места не требуется. В оракле "пометка" плюс новое место в ундо.
Но действительно, в постгресе стоит рассматривать помеченную удалением строку как элемент унды, так как ее место нельзя занимать, пока доудаленная версия строки может потребоваться какой-либо из незавершенных транзакций.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434348
ундевидАпдейт одного поля в постгресе создает копию строки целиком. зато делит ничего не занимает.А теперь подумай что же в типичной работе с БД бывает чаще и насколько - апдейт или делит?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434358
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
апдейт делитаА теперь подумай что же в типичной работе с БД бывает чаще и насколько - апдейт или делит?

Если БД спроектирована нормально, а операторы не вносят чушь, которую потом приходится
изменять на правильную - делит.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434413
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry Sibiryakov,

бред какой-то... Это уже неправильное использование базы... То есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434414
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
или еще хуже - сущности вообще не должны изменяться? это уже лог, а не база
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434419
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderТо есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт?

Обычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно,
делит вместе с сущностью.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434433
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderили еще хуже - сущности вообще не должны изменяться? это уже лог, а не базаЭто BigData, сэр.
Правда Hive уже стал поддерживать updates правда кривенько.
Dimitry SibiryakovxtenderТо есть по-твоему, те же изменения статусов у сущностей надо делать через делит-инсерт?

Обычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно,
делит вместе с сущностью.
Ты в предыдущем сообщении говорил, что delete чаще, а тут уже "возможно".
Вбрасывать надо продуманнее.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434436
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя главный тролль, конечно, ТС.
Этот форум позволяет удобненько смотреть статистику по сообщениям и видно,
что персонаж минимум 10 лет с Ораклом, при этом он ровно год не писал в форум, чтоб появиться, вбросить и снова исчезнуть.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434464
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopа тут уже "возможно".
Это "возможно", если кто не понял, относится к "вместе с сущностью", ибо удалять историю
состояний сущности без ней самой как-то не слишком осмысленное действо...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434468
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovdbms_photoshopа тут уже "возможно".
Это "возможно", если кто не понял, относится к "вместе с сущностью", ибо удалять историю
состояний сущности без ней самой как-то не слишком осмысленное действо...

Вот как раз удаление записей в штатном режиме основных бизнес-процессов как раз наводит на мысль, что уровень бизнеса явно не соответствует тем компаниям, где нужен оракл с поддержкой . Даже мучительное натягивание ентерпрайзных масштабов на стандартную редакцию к такому не приводит.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434661
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopХотя главный тролль, конечно, ТС.
Этот форум позволяет удобненько смотреть статистику по сообщениям и видно,
что персонаж минимум 10 лет с Ораклом, при этом он ровно год не писал в форум, чтоб появиться, вбросить и снова исчезнуть.

Уважаемый, это не совсем так. Последний год не было нужды пользоваться форумом. Сейчас приперло все везде переводить с Oracle на Postgres (импортозамещение жеж) и стали возникать вопросы.

Для многих нет особой разницы субд и субд, только одна дорогая, а другая дешевая. Логично ведь, что "при прочих равных", надо переходить на дешёвую.

Мне вот интересна аналогия СУБД с ТС.

Oracle - гелик v12 biturbo в максималке. Можно и на работу ездить и по лесу. И мелкую речку переехать. И трактор тащить из грязи. В общем сильный, надежный, удобный универсал.

Всякие разные MongoDb это как узкоспециализированные решения - квадрик, катер - хорошо выполняют свою узкоспец. задачу.

А что в данном контексте есть postgres - четырка, тоже многие ездят и на работу и в леса, дешевая сама, дешевые запчасти, комфорт не очень, особо по грязи не проедешь.

Ну как-то так.

С другой стороны все в праве и по средствам выбирать. Частная страховая или банки могут позволить себе Oracle и пожалуйста, а гос сектор платит не своими, а нашими, поэтому и на четырках могут поездить. Действительно ведь так.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434688
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruгос сектор платит не своими, а нашими, поэтому ...Чтобы делать какие-то выводы, нужно сначала сравнить бюджеты регионов 2013 и 2017 по статьям, связанным с информационными системами. На сколько сократились?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434697
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-,

Не могу сказать на сколько.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434735
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruУважаемый ...Потрудись в следующий раз избегать обращений как к официанту.
Не совсем понятно к чему этот поток сознания про гелики, катера, Mongo DB, реки и леса.
Еще немного одушевленных персонажей и может вполне себе получиться детская сказочка.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434746
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruСейчас приперло все везде переводить с Oracle на Postgres (импортозамещение жеж) и стали возникать вопросы.
Всегда интересовал вопрос зачем что-то куда-то переводить, если можно просто не платить за поддержку, я как-то особой разницы (с т.з. поддержки) не вижу между ораклом без поддержки и PosgreSQL с "поддержкой сообщества", у этого "сообщества" вообще самая популярная рекомендация выглядит как "если что-то тупит, то нужно первым делом сделать vacuum full analyze - вдруг перестанет тупить"
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434759
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще, смысл очевиден.

За 15 лет номинальный ВВП вырос в 30 раз в рублях и почти в 10 раз в долларах! При значительно ))) меньшем росте реального ВВП ))).

А Oracle всюду, куда можно, уже внедрили. Как расти и развиваться дальше? Правильно - внедрять PostgreSQL. Он может и бесплатный, но внедряют то все равно за деньги! Вот ВВП еще раз в 30 и вырастет.... Разумеется, номинальный. Ну если не вырастит ВВП, то на хлеб с маслом, икрой, виллу в Италии нужным людям все равно хватит )))
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434772
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

совсем не дальновидно кмк, PostgreSQL догонит по фичам оракл лет через десять, а дальше что? на другую базу двигать? а вдруг такой фокус уже не прокатит? Нужно сразу брать что-то с перспективой на 20-30 лет, линтер какой-нибудь.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434809
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434812
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchКак уже сказали выше - в Oracle вместо write ahead log - реализован механизм UNDO.

Вообще-то write ahead log это redo, так что undo реализован не "вместо" а "в дополнение".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434818
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - т.е. датафайл использовать просто как лог файл (изврат, но иногда приходится и на такое идти, чтоб справиться с потоком фактов).
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434824
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Offtopic on

Андрей ПанфиловLeonid Kudryavtsev,

совсем не дальновидно кмк, PostgreSQL догонит по фичам оракл лет через десять, а дальше что? на другую базу двигать? а вдруг такой фокус уже не прокатит? Нужно сразу брать что-то с перспективой на 20-30 лет, линтер какой-нибудь.

Присутствовал при разговоре по этому поводу в крупной структуре нашей газовой отрасли....

Если уж импортозамещение и все равно деньги Газпром в бюджете выделит, нафига Вам буржуйный PostgreSQL, лучше уж возьмите Линтер. К тому же, по __функциям__ он больше подходил под их задачу. Ну и команда разработчиков Линтера обещала всяческую помощь в проекте (т..к. для них он был важен, как минимум с точки зрения престижа) - никакого понимание у заказчика (около гос. структуры) не нашлось. PostgreSQL и все.

Но на деле, сказали просто... мы для галочки на PostgreSQL перейдем, раз очень большое начальство хочет, а как был Oracle, так он у нас и останется. Как-то так.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434836
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchИ в Oracle такое можно достичь только принудительным путем....
А зачем в Oracle такое достигать? redo log на отдельном диске, а запись в файлы базы идет асинхронно. Дальше можно тюнить размер buffer и кол-во dirty buffer'ом. AFAIK По крайне мере в 8'ке. В PostgreSQL так же.

Если же подходить к настройке экземпляра по принципу "Oracle умный, ему виднее" ( C ) админы, то никакое принуждение не поможет ))). IMHO
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434844
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434856
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Dimitry SibiryakovОбычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно,
делит вместе с сущностью.
dbpatchИ все что остается в этом случае - это все UPDATE и даже DELETE приводить к INSERT, даже есть концепция такая, кажется называется Temporal Databaseгоспидя, откуда у вас такая каша то в головах?!
Во-первых, большинство реализаций SCD2/Temporal Validity включают в себя апдейт текущей записи и инсерт новой.
Во-вторых, это никоим образом не оптимизация по доступу, т.к. селекты в данном случае становятся на порядки медленнее, а их как раз обычно на порядки больше, чем инсертов/апдейтов/делитов вместе взятых.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434860
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatch... на терабайты в день, в RAM просто не помещаются...
Добавить RAM )))
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434866
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatchА вот когда начинается вопрос вставки многих десятков тысяч фактов в секунду (всякие биржевые роботы, показы рекламы и т.п.) и обновлений оных, то Oracle вполне ожидаемо...
ну не то чтобы садится в лужу, но начинает работать не настолько хорошо, быстро и с несколько НЕ гарантированным временем реакции. ?! что за бред-то? С этим обычно вообще никаких проблем не бывает, кроме как конкуренции за последние блоки индекса, которые тем не менее очень легко лечатся. Для каких-нибудь сотовых операторов это вообще мелочи...
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434871
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatchнужно максимально эффективно иметь возможность получить из базы данных последнее состояние.для максимально эффективного обычно используют scd 4 - то есть в одной таблице как раз хранятся только текущие состояния, а прошлые в отдельной исторической таблице.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434872
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevdbpatch... на терабайты в день, в RAM просто не помещаются...
Добавить RAM )))

физически невозможно, и так все слоты забиты
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434874
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderDimitry SibiryakovОбычно бизнесу нужна также и история статусов, так что да - через инсерт и, возможно,
делит вместе с сущностью.
dbpatchИ все что остается в этом случае - это все UPDATE и даже DELETE приводить к INSERT, даже есть концепция такая, кажется называется Temporal Databaseгоспидя, откуда у вас такая каша то в головах?!
Во-первых, большинство реализаций SCD2/Temporal Validity включают в себя апдейт текущей записи и инсерт новой.
Во-вторых, это никоим образом не оптимизация по доступу, т.к. селекты в данном случае становятся на порядки медленнее, а их как раз обычно на порядки больше, чем инсертов/апдейтов/делитов вместе взятых.

у тебя каша в голове? ну ок.

да, иногда в подобных реализациях есть апдейт. если нагрузка небольшая, то даже работает - ну, когда один поток в 8000recs/s падает до 700rec/s за счет апдейта и тебя это вполне устраивает :)

селекты на порядки медленнее? селектов на порядки больше, это на сколько? в два раза, в десять раз медленее?

а как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)?

или ты решил животрепещуще описать свою базу данных размером в 10 гигабайт с проводками?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434879
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatch,

awr dump в студию, там и посчитаем сколько у тебя селектов/сколько инсертов или дальше будешь нести бред?
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434880
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatchа как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)?тогда хоть в файлики, хоть в хадуп пишите...
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434885
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatch,

awr dump в студию, там и посчитаем сколько у тебя селектов/сколько инсертов или дальше будешь нести бред?

больше тебе ничего не нужно запостать?

и да, мы не делаем AWR, ибо это довольно глупая и бессмысленная трата времени, мерять среднее по больнице. DBA делать нечего - пусть они их и рассматривают
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434886
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatchа как насчет всего одного селекта в раз в полчаса (на 80к вставок в секунду)?тогда хоть в файлики, хоть в хадуп пишите...

хадуп не устроил в части ресурсоемкости-стабильности, да и селекты из него делать несколько мрачновато.

а так да, задача примерно из этой области
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434889
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
dbpatchSELECT v2 ... FROM NOT EXISTS ( v1.id = v2.id and v1.change_time > v2.change_time)dbpatchнам нужно максимально эффективно иметь возможность получить из базы данных последнее состояниеда уж все с вами ясно...
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434897
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xtenderdbpatchSELECT v2 ... FROM NOT EXISTS ( v1.id = v2.id and v1.change_time > v2.change_time)dbpatchнам нужно максимально эффективно иметь возможность получить из базы данных последнее состояниеда уж все с вами ясно...

это хорошо, что тебе уже все ясно, а то создалось впечатление, что ты нечитатель - я вроде довольно подробно описал специфику задачи, для которой UNDO не подходит и нужно делать вакуум вручную, а ты начал про превышение на порядки SELECT-ов над UPDATE

видно, что ты что-то хотел сказать о своем, о наболевшем, но... не получилось? бывает.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434922
simplekindoflie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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

Приветствую!
А назовете компанию, в которой подобное было реализовано? )
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39434957
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatch задачи, для которой UNDO не подходит и нужно делать вакуум вручнуюСначала ты заменил апдейт ни инсерт, теперь делаешь вручную вакуум ундо.
Лучше напиши для твоей "специфики" конкретные цифры сколько куда пишется байт по какой операции.
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39435239
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGruВернее, почему проблема так остро не стоит? Почитать бы по этому аспекту что-то

MVCC в Oracle и PostgreSQL .
...
Рейтинг: 0 / 0
Почему в Oracle нет vacuum
    #39435613
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchКогда любой DML это по сути операция copy on write, т.е. гарантированно делается только один iops. А как гарантированно получить только один IO? Без индексов чтоли жить?
...
Рейтинг: 0 / 0
64 сообщений из 64, показаны все 3 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему в Oracle нет vacuum
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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