|
|
|
Почему в 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?fid=52&msg=39434922&tid=1886129]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 542ms |

| 0 / 0 |
