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

Можно както оперативно почистить сегменты lob без удаления таблицы в

которой поля blob/clob?

6 ответов

56 просмотров

ALTER TABLE TABLE_NAME ENABLE ROW MOVEMENT ALTER TABLE TABLE_NAME SHRINK SPACE CASCADE

Александр-Егоров Автор вопроса
Александр Егоров
Так пробовал... не чистит

Ну конечно, потому что таким образом Вы выполняете MOVE только для таблицы, но не для LOB сегмента. Вам нужен немного другой синтаксис, вроде такого: ALTER TABLE lob_tab MODIFY LOB(data) (SHRINK SPACE CASCADE); Ну и почитайте заметку с объяснением что к чему и почему, напрмер эту: https://oracle-base.com/articles/misc/alter-table-shrink-space-online

Александр-Егоров Автор вопроса
Ро
Ну конечно, потому что таким образом Вы выполняете...

Спасибо... ссыль посмотрю, но этот способ тоже не чистит.

Александр Егоров
Спасибо... ссыль посмотрю, но этот способ тоже не ...

Версия какая? Там до 19 (или даже 21) был баг, что хотя поле создавалось как BASIC, скрытый параметр все прописывал как SecureFile, а с ним Modify lob shrink не работал 😞

Александр Егоров
Спасибо... ссыль посмотрю, но этот способ тоже не ...

Ну как уже упоминалось в соседних сообщениях, разберитесь со способом хранения Ваших LOB сегментов - BASICFILE или SECUREFILE. И второе - тут же технический канал, мы тут "не верим" заявлениям "не чистится". Приведите логи сессии, где видно значение DBA_SEGMENTS.BYTES для таблицы и для LOB сегмента до, потом команды что Вы выполнили, их результат (полезно включить set timing on), и результаты с размерами сегментов из словаря после. А ещё лучше выложите куда-то на dbfiddle.uk простенький тест, где Вы создаете табличку с парой полей и LOB сегментом, наполняете её тестовыми данными из DBMS_RANDOM (скажем миллион строк), потом удаляете половину и пытаетесь сжать таблицу / LOB сегмент с помощью MOVE. Тут все сидят с открытыми коннектами к базам, и тут же могут воспроизвести Ваш пример на своих системах, на разных версиях и архитектурах Oracle DB. Эта рекомендация не только к Вашему вопросу относится, но вообще ко всем, кто просит аудиторию что-то проверить или помочь. Описанный выше подход к задаванию вопросов по-моему оптимальный и позволяет любому у кого есть несколько минут быстро воспроизвести пример и проблему - и предложить вариант решения.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта