以下の内容はhttps://htn20190109.hatenablog.com/entry/2024/11/30/234655より取得しました。


{パーティション}パーティションのメンテナンス

 

https://docs.oracle.com/cd/F19136_01/vldbg/maintenance-partition-can-be-performed.html#GUID-79391819-DCEF-46AC-977D-199BD2044DA2

 

    パーティションを追加
alter table range_range
 add partition p2 values less than(200);

insert into range_range values(190,1);

select * from user_tab_subpartitions 
where table_name ='RANGE_RANGE';

alter table hash
 add partition p3;

alter table list_range
 add partition p3 values (7);


    パーティションを結合
alter table hash
 coalesce partition;

 

    パーティションを削除
alter table range_range
 drop partition p2;

alter table list_range
 drop partition p3;

 

    パーティションを交換
create table range_ex
( col1 number,
  col2 date
);

insert into range_ex values(1,sysdate);
insert into range_ex values(2,sysdate);

select * from range;
select * from range_ex;

alter table range
 exchange partition p1 with table range_ex;


    パーティションをマージ
alter table range
 merge partitions p1,p2 into partition np1
 update indexes;


insert into interval values(1,sysdate);
insert into interval values(2,sysdate+100);
insert into interval values(2,sysdate+30);

select * from user_tab_partitions
where table_name ='INTERVAL'
;


alter table interval
 merge partitions for(to_date('20241201','yyyymmdd')),
        for(to_date('20250101','yyyymmdd'));


alter table list_range
 merge partitions p1,p2 into partition np1
 update indexes;


    パーティションデフォルト属性を変更
set long 50000
select dbms_metadata.get_ddl('TABLE','RANGE_RANGE') from dual;

alter table range_range
 modify default attributes for partition p1 tablespace sysaux;


    リストパーティションへ値を追加
set long 50000
select dbms_metadata.get_ddl('TABLE','LIST') from dual;

ALTER TABLE list
   MODIFY PARTITION p1
      ADD VALUES (11, 12);


    リストパーティションから値を削除
set long 50000
select dbms_metadata.get_ddl('TABLE','LIST') from dual;

ALTER TABLE list
   MODIFY PARTITION p1
      drop VALUES (11);


    パーティションを移動
set long 50000
select dbms_metadata.get_ddl('TABLE','LIST') from dual;

ALTER TABLE list MOVE PARTITION p1
     TABLESPACE users NOLOGGING COMPRESS;

 

    パーティション名を変更
set long 50000
select dbms_metadata.get_ddl('TABLE','LIST') from dual;

ALTER TABLE list RENAME PARTITION p1 TO p100;

    パーティションを分割
set long 50000
select dbms_metadata.get_ddl('TABLE','RANGE') from dual;

ALTER TABLE range SPLIT PARTITION 
      np1 at (100) INTO ( PARTITION
      np100, PARTITION np200);


set long 50000
select dbms_metadata.get_ddl('TABLE','LIST') from dual;

ALTER TABLE list 
   SPLIT PARTITION p100 VALUES (1,2) 
   INTO 
    ( PARTITION p100a
         TABLESPACE users,
      PARTITION p100b
         STORAGE (INITIAL 8M)) 
   PARALLEL 5;

set long 50000
select dbms_metadata.get_ddl('TABLE','INTERVAL') from dual;

ALTER TABLE interval
    SPLIT PARTITION FOR(TO_DATE('20141001','yyyymmdd'))
    AT (TO_DATE('20140810','yyyymmdd'));

    パーティションを切り捨て
set long 50000
select dbms_metadata.get_ddl('TABLE','HASH') from dual;

ALTER TABLE hash TRUNCATE PARTITION p2
     UPDATE INDEXES;

 

 




以上の内容はhttps://htn20190109.hatenablog.com/entry/2024/11/30/234655より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14