powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Удаление записей с BLOB? нагрузка на сегменты отката
5 сообщений из 5, страница 1 из 1
Удаление записей с BLOB? нагрузка на сегменты отката
    #32149806
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация: Имеестя таблица каталог товаров в которой есть BLOB поле для хранения демонстрационных видео-роликов. Периодически возникает необходиость удалять вышедшие из продажи товары. Удаление вызывает большую нагрузку на сегменты отката из за BLOB и потерю производительности. В остальных случаях размер сегментов отката является достаточным.

Хотелось бы знать мнение экспертов по поводу такого решения.

Использовать дополнительное поле например deleted. При удалении записи только помечаются как удаленные, а DBA периодически например раз в неделю (в ручную или через настроенный джоб) их физически удаляет.

Код: plaintext
delete from wares where deleted='1';


Если к моменту проведения этой операции накопилось много записей для удаления, то текущий размер сегментов отката может оказаться недостаточным. Поэтому удаление осуществляется по-блочно с промежуточными коммитами например после каждых 3 строк коммит.

Хотелось бы услышать комментарии и критику по такому решению. Советам как сделать лучше тоже буду очень признательна.
...
Рейтинг: 0 / 0
Удаление записей с BLOB? нагрузка на сегменты отката
    #32150175
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A Delete /*+ NOLOGGING */
from ...........
ne probovali?
...
Рейтинг: 0 / 0
Удаление записей с BLOB? нагрузка на сегменты отката
    #32150192
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delete /*+ NOLOGGING */ - данный хинт вроде как подавляет запись только в реду или в сегменты отката тоже?

Читаю различные доки по этому вопросу, предлагается даже временное увеличение размеров сегментов отката перед проведением такой операции удаления а потом возвращение его на прежнее значение. В принципе при таком подходе можно и не делать промежуточных коммитов.
...
Рейтинг: 0 / 0
Удаление записей с BLOB? нагрузка на сегменты отката
    #32150210
Фотография Oracle X-pert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Voobshe-to, ya delau snachala ERASE(), a potom Delete row.
BLOB ~ 3 - 5 GByte... S takoi problemoi ne stalkivalsya ni razy..
...
Рейтинг: 0 / 0
Удаление записей с BLOB? нагрузка на сегменты отката
    #32150234
Violina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрела по ERASE, она не уменьшает размер поля

The length of the LOB is not decreased when a section of the LOB is erased. To decrease the length of the LOB value, see the "TRIM Procedure".

В общем стоит делать так?

В процедуре выполнить для deleted='1'

Код: plaintext
dbms_lob.trim(var_movie,  0 );


а затем

Код: plaintext
delete from wares where deleted='1';
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Удаление записей с BLOB? нагрузка на сегменты отката
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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