172 похожих чатов

Меня не устраивает что 1 update, создает новую строку, со

всеми полями, помечает старую, и далее удаяет ее. Это огромный оверхед. В оракле этого нет. Есть что возразить ?

11 ответов

13 просмотров

В орвкле это, разумеется, есть.

В оракле 1 update создаёт целый BLOCK_SIZE оверхед на каждую стороку! Причём при изменении строкии И всех индексов, у вас будет N*BLOCK_SIZE оверхед.

Jamal-Sale Автор вопроса
Виктор Егоров
В оракле 1 update создаёт целый BLOCK_SIZE оверхед...

Что такое block size оверхед? И почему вы это называете оверхедом?

Это есть вообще во всех ACID-базах, дажэ в блокировочниках. Write amplificarion можэт быть разный (да и то — вопрос там между x4 и x6 и в какую сторону усреднение) — но необходимость хранить старую строку никуда не девается.

дорогой мой коллега! в оракле версионируются блоки, целиком. размером BLOCK_SIZE. они летят в UNDO_SEGMENT. причём любые блоки — таблицы, индксы, материализованные представления — всё! в постгресе тоже есть UNDO, внезаппно. только он логический и действует только для таблиц. и храниться в самой таблице, а не в отдельном сегменте.

Но в oracle он внезапно освобождается 😂, не будем короче флудить

Konstantin Zaitsev
Но в oracle он внезапно освобождается 😂, не будем ...

У нас он тожэ освобождается. Примерно тогда жэ в типичном сцэнарии.

Jamal-Sale Автор вопроса
Виктор Егоров
дорогой мой коллега! в оракле версионируются блок...

Ну вы сравнили. Нет, архитектура анду и out-of-place update, это радикально разные вещи. Апдейт 2-3-100 строк лежащих в одном блоке - затронет только один блок в оракле. В ПГ - как попадется.

Ilya Anfimov
У нас он тожэ освобождается. Примерно тогда жэ в т...

С одной только разницей, что при активных изменениях автоваккум приходит не сразу, а к этому моменту таблица уже может разростись. И в меньшить её размен автовакуум уже не может. Нужен полный вакуум.. 🤷‍♂️

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
падает джоба хотя уже была собрана на соседнем namespace, куда капать? │ │ Copying blob sha256:2fa066caddb8f09a71082b03aa43046f79346a01d9c89e06a1f508bb1207dba5 427 │ │ Copyin...
Andrei St
2
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
Тут просто дело в том, что я не могу сейчас дать такие подробности из за того что рассчитать это всё нереально. Этого проекта который я хочу сделать ещё даже не существует) И ...
🐾
8
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
Карта сайта