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

Откуда: Город-герой Минск
Сообщений: 248
В одном скрипте нашел такую строчку

ALTER TABLE SP_GTDS_ALL MOVE PARTITION P_2010; 


И если честно то не вьехал зачем... Знаю что есть move partition part_name TABLESPACE tsName... но такого не встречал
Решил попробывать... но так и не понял что изменилось
create table testPart
(
id integer,
text varchar2(50),
pDate date
)
PARTITION BY Range (pDate)
(
PARTITION P_2001 VALUES LESS THAN (TO_DATE(' 2002-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')),
PARTITION P_2002 VALUES LESS THAN (TO_DATE(' 2003-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
);

insert into testPart
select 1, 'test1', to_date('01.05.2000') from dual
union all
select 2, 'test2', to_date('01.05.2001') from dual
union all
select 3, 'test3', to_date('01.05.2002') from dual;

ALTER TABLE testPart MOVE PARTITION P_2002;
11 дек 12, 13:09    [13612082]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
Corner
Member

Откуда:
Сообщений: 1270
фрагментация!?
11 дек 12, 13:12    [13612102]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
Corner
Member

Откуда:
Сообщений: 1270
test@TEST>create table testPart
  2  (
  3  id integer,
  4  text varchar2(50)
  5  )
  6  PARTITION BY Range (id)
  7  (
  8  PARTITION P_1 VALUES LESS THAN (10000),
  9  PARTITION P_2 VALUES LESS THAN (50000)
 10  );

Table created.

test@TEST>insert into testPart select rownum as id, rpad('','0',50) from dual connect by level<50000;

49999 rows created.

test@TEST>column partition_name format a25
test@TEST>select partition_name,bytes from user_segments where segment_name='TESTPART';

PARTITION_NAME                 BYTES
------------------------- ----------
P_1                           196608
P_2                           524288

test@TEST>delete from testPart where mod(id,2)=0;

24999 rows deleted.

test@TEST>commit;

Commit complete.

test@TEST>select partition_name,bytes from user_segments where segment_name='TESTPART';

PARTITION_NAME                 BYTES
------------------------- ----------
P_1                           196608
P_2                           524288

test@TEST>alter table testPart move partition P_1;

Table altered.

test@TEST>alter table testPart move partition P_2;

Table altered.

test@TEST>select partition_name,bytes from user_segments where segment_name='TESTPART';

PARTITION_NAME                 BYTES
------------------------- ----------
P_1                           131072
P_2                           262144
11 дек 12, 13:20    [13612187]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
friz777
Member

Откуда: Город-герой Минск
Сообщений: 248
спасибо за разъяснение!
11 дек 12, 13:21    [13612211]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
Corner
Member

Откуда:
Сообщений: 1270
только учтите, что при move поменяются rowid у строк и, как следствие, индексы станут UNUSABLE. их надо будет перестроить.
11 дек 12, 13:23    [13612238]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
Добрый Э - Эх
Guest
А ещё, возможно, компрессия...
11 дек 12, 13:31    [13612320]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
Corner
Member

Откуда:
Сообщений: 1270
а еще storage attribute...
11 дек 12, 13:33    [13612345]     Ответить | Цитировать Сообщить модератору
 Re: Move Partition  [new]
hoarfrost
Member

Откуда: Волгоград
Сообщений: 438
B segment space management...
11 дек 12, 14:47    [13612909]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить