Важно. При использании ALTER TABLE ... MOVE нужно пересоздавать индексы этой таблицы.
Эта команда перемещает HWM в таблице до уровня занятых блоков. Например, в таблице HWM было на уровне 16 блоков, но потом в рез-те разных операций, занятых блоков осталось 12, но HWM остаётся на уровне 16, вот чтобы переместить HWM на уровень 12 блоков и увеличить кол-во unused blocks используется alter table move.
Но кол-во пространства, которое занимает таблица не меняется!!!
Перенести таблицу в другое табличное пространство
-- создаём табличное пространство
CREATE TABLESPACE GUPPI_TEST
DATAFILE '/data/GUPPI/guppi_test.dbf' SIZE 1000M AUTOEXTEND OFF;
-- проверяем в каком tablespace таблица до MOVE
select * from dba_segments where segment_name='T';
select * from dba_tables where table_name='T';
-- проверяем индексы
-- check index status
select index_name,status from dba_indexes where table_name
in ('T','CDR_UNBILLED','CDR_DATA_DUC','CDR_BILLED');
-- check index status for partition
select index_name,partition_name,status from dba_ind_partitions
where partition_name like 'T%' ;
-- перемещаем таблицу в другое tablespace
alter table guppi.t move tablespace guppi_test;
-- если много таблиц, то можно сгенерить команды
select 'alter table quest.'|| table_name || ' move;' from dba_tables where owner='QUEST';
-- проверяем в каком tablespace таблица после MOVE
select * from dba_segments where segment_name='T';
select * from dba_tables where table_name='T';
-- пересоздаём индексы таблицы, если они там были
-- в этом примере пересоздаём индексы и переносим их в другое табличное пространство
alter index guppi.object_id_idx rebuild tablespace guppi_test online;
-- если много таблиц, то можно сгенерить команды
select 'alter index quest.'|| index_name || ' rebuild online;' from dba_indexes where owner='QUEST';
-- проверяем индексы
select index_name,status from dba_indexes where table_name='T';
CREATE TABLESPACE GUPPI_TEST
DATAFILE '/data/GUPPI/guppi_test.dbf' SIZE 1000M AUTOEXTEND OFF;
-- проверяем в каком tablespace таблица до MOVE
select * from dba_segments where segment_name='T';
select * from dba_tables where table_name='T';
-- проверяем индексы
-- check index status
select index_name,status from dba_indexes where table_name
in ('T','CDR_UNBILLED','CDR_DATA_DUC','CDR_BILLED');
-- check index status for partition
select index_name,partition_name,status from dba_ind_partitions
where partition_name like 'T%' ;
-- перемещаем таблицу в другое tablespace
alter table guppi.t move tablespace guppi_test;
-- если много таблиц, то можно сгенерить команды
select 'alter table quest.'|| table_name || ' move;' from dba_tables where owner='QUEST';
-- проверяем в каком tablespace таблица после MOVE
select * from dba_segments where segment_name='T';
select * from dba_tables where table_name='T';
-- пересоздаём индексы таблицы, если они там были
-- в этом примере пересоздаём индексы и переносим их в другое табличное пространство
alter index guppi.object_id_idx rebuild tablespace guppi_test online;
-- если много таблиц, то можно сгенерить команды
select 'alter index quest.'|| index_name || ' rebuild online;' from dba_indexes where owner='QUEST';
-- проверяем индексы
select index_name,status from dba_indexes where table_name='T';