Страница 1 из 1

Удаление данных из мемо-поля

Добавлено: 18 июн 2015, 04:22
aybubnov
Такая задача: нужно выгрузить из БД документы, чтобы уменьшить объем БД.
В випке выгружаю данные из мемо-поля и затем очищаю это мемо-поле:

Код: Выделить всё

ClearMemoField( DocInfo.TextData ); 
Update current DocInfo;
Смотрю по журналу таблицы DocInfo у поля TextData новое значение "Тип: "PDF". Размер: 0".
Все как бы честно, поле очистилось. Выгружено документов и, соответственно, должно быть освобождено в БД примерно 10 ГБ.
БД в Оракле. При этом архивлогов сделалось несравненно меньше 10 ГБ и место в табличном пространстве не освободилось. LOBS продолжает расти ("дырок" в нем не появилось).
Что не так сделано? Как уменьшить БД на эти 10 ГБ?

Re: Удаление данных из мемо-поля

Добавлено: 18 июн 2015, 09:44
Masygreen
если там по аналогии с SQL то надо провести сжатие таблиц\освобождение свободного места. По факту данные не удаляются, а только помечаются на удаление.

Re: Удаление данных из мемо-поля

Добавлено: 19 июн 2015, 03:32
aybubnov
Masygreen писал(а):если там по аналогии с SQL то надо провести сжатие таблиц\освобождение свободного места. По факту данные не удаляются, а только помечаются на удаление.
так в том то и дело, что "архивлогов сделалось несравненно меньше 10 ГБ и место в табличном пространстве не освободилось. LOBS продолжает расти ("дырок" в нем не появилось)."
сжатие ни к чему не привело

Re: Удаление данных из мемо-поля

Добавлено: 19 июн 2015, 09:37
LaaLaa
А журнализацию таблицы DocInfo используете? Может быть вся информация осталась в журнальных таблицах? При update записей журнал только растет.

Re: Удаление данных из мемо-поля

Добавлено: 19 июн 2015, 09:49
LaaLaa
Галактика в оракле свой журнал хранит не только в таблицах x$journal и j$nnnn, но и в таблице sys#memo. К слову сказать в таблице sys#memo вперемешку храняться все значения всех lvar полей всех таблиц. Как основных так и журнальных.

Re: Удаление данных из мемо-поля

Добавлено: 19 июн 2015, 09:58
aybubnov
LaaLaa писал(а):А журнализацию таблицы DocInfo используете? Может быть вся информация осталась в журнальных таблицах? При update записей журнал только растет.
Да, используем. "по журналу таблицы DocInfo у поля TextData новое значение "Тип: "PDF". Размер: 0""
Получается эти 10 Гб остались на своем месте, а ссылки на них перекочевали из DocInfo в журнал и освободить место можно будет только после очистки журнала? ... логично, спасибо.

Re: Удаление данных из мемо-поля

Добавлено: 19 июн 2015, 11:20
LaaLaa
Да после того как корректно почистите журнал. Будет иметь смысл выполнять дефрагментацию и сжатие табличных пространств в Oracle