Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 clob set null  [new]
cumba
Member

Откуда:
Сообщений: 64
Всем привет!

Есть таблица с данными

T:
id number
cl clob

Если выполнить запрос update t set cl = null освобождается ли место в файловом пространстве ?
Если нет то какими средствами это делается ?
19 дек 11, 10:07    [11786884]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
ORA__SQL
Member

Откуда: Moscow
Сообщений: 1774
cumba
Если выполнить запрос update t set cl = null освобождается ли место в файловом пространстве ?

Нет
cumba
Если нет то какими средствами это делается ?

Shrink
19 дек 11, 10:14    [11786936]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6915
а что мешает проверить самому?
19 дек 11, 10:15    [11786944]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
cumba
Member

Откуда:
Сообщений: 64
alex-ls
а что мешает проверить самому?


Незнаине куда смотреть)
19 дек 11, 10:29    [11787030]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6915
dbms_space вроде
19 дек 11, 10:32    [11787051]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
cumba
Member

Откуда:
Сообщений: 64
drop table t;

create table t (
id number,
cl clob
);

declare
total_blocks number;
total_bytes number;
unused_blocks number;
unused_bytes number;
lastextf  number;
last_extb number;
lastusedblock number;
begin
DBMS_SPACE.UNUSED_SPACE('TEST', 'T', 'TABLE', total_blocks, 
   total_bytes,unused_blocks, unused_bytes, lastextf,  
   last_extb, lastusedblock); 

dbms_output.put_line ('TEST ' || ' T ' || ' TABLE ' || CHR(10)||CHR(13) ||
'total_blocks: '||total_blocks
                        ||CHR(10)||CHR(13)|| 
'total_bytes: '||total_bytes
                          ||CHR(10)||CHR(13)||
'unused_blocks: '||unused_blocks
                      ||CHR(10)||CHR(13)||
'unused_bytes: '||unused_bytes
                      ||CHR(10)||CHR(13)||
'lastextf: '||lastextf
                        ||CHR(10)||CHR(13)||  
'last_extb: '||last_extb
                         ||CHR(10)||CHR(13)||
'lastusedblock: '||lastusedblock);
   end;


TEST T TABLE

total_blocks: 8

total_bytes: 65536

unused_blocks: 5

unused_bytes: 40960

last_used_extent_ file_id: 4

last_used_extent_ block_id: 737

last_used_block: 3

insert into t
select level as id, dbms_random.string('P', 4000) as cl from dual
connect by level < 101;


TEST T TABLE

total_blocks: 8

total_bytes: 65536

unused_blocks: 0

unused_bytes: 0

last_used_extent_ file_id: 4

last_used_extent_ block_id: 737

last_used_block: 8

update t set cl = null;


TEST T TABLE

total_blocks: 8

total_bytes: 65536

unused_blocks: 0

unused_bytes: 0

last_used_extent_ file_id: 4

last_used_extent_ block_id: 737

last_used_block: 8

alter table t enable row movement;
alter table T shrink space;


TEST T TABLE

total_blocks: 8

total_bytes: 65536

unused_blocks: 4

unused_bytes: 32768

last_used_extent_ file_id: 4

last_used_extent_ block_id: 737

last_used_block: 4

update t set cl = dbms_random.string('P', 4000) where id = id;


TEST T TABLE

total_blocks: 8

total_bytes: 65536

unused_blocks: 4

unused_bytes: 32768

last_used_extent_ file_id: 4

last_used_extent_ block_id: 737

last_used_block: 4

После последнего апдейта разве не должны забиваться не используемые блоки ?
19 дек 11, 14:01    [11788812]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
cumba
Member

Откуда:
Сообщений: 64
Или нужно использовать
ALTER TABLE t MODIFY LOB (cl) (SHRINK SPACE);
?

тогда как проверить что эта команда сработала ?
19 дек 11, 14:05    [11788848]     Ответить | Цитировать Сообщить модератору
 Re: clob set null  [new]
cumba
Member

Откуда:
Сообщений: 64
Наткнулся на статью http://www.idevelopment.info/data/Oracle/DBA_tips/LOBs/LOBS_85.shtml
и разобрался. Спасибо за помощь!
19 дек 11, 14:16    [11788971]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить