oracle 交換分割槽歷史資料歸檔
設定時間格式
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
//建立表 並分割槽
create table acc_item_cur
(acc_item number,
acc_item_desc varchar2(20),
acc_date date,
area_code varchar2(6)
)
partition by range (acc_date)
subpartition by list (area_code)
(partition d1 values less than (TO_DATE('2012-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d1_con1 values('ASIA','AUST'),
subpartition d1_con2 values('AMER'),
subpartition d1_con3 values('AFRICA'),
subpartition d1_con4 values('EUROPE')),
partition d2 values less than (TO_DATE('2012-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d2_con1 values('ASIA','AUST'),
subpartition d2_con2 values('AMER'),
subpartition d2_con3 values('AFRICA'),
subpartition d2_con4 values('EUROPE')),
partition d3 values less than (TO_DATE('2012-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d3_con1 values('ASIA','AUST'),
subpartition d3_con2 values('AMER'),
subpartition d3_con3 values('AFRICA'),
subpartition d3_con4 values('EUROPE'))
);
create table acc_item_cur
(acc_item number,
acc_item_desc varchar2(20),
acc_date date,
area_code varchar2(6)
)
partition by range (acc_date)
subpartition by list (area_code)
(partition d1 values less than (TO_DATE('2012-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d1_con1 values('ASIA','AUST'),
subpartition d1_con2 values('AMER'),
subpartition d1_con3 values('AFRICA'),
subpartition d1_con4 values('EUROPE')),
partition d2 values less than (TO_DATE('2012-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d2_con1 values('ASIA','AUST'),
subpartition d2_con2 values('AMER'),
subpartition d2_con3 values('AFRICA'),
subpartition d2_con4 values('EUROPE')),
partition d3 values less than (TO_DATE('2012-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d3_con1 values('ASIA','AUST'),
subpartition d3_con2 values('AMER'),
subpartition d3_con3 values('AFRICA'),
subpartition d3_con4 values('EUROPE'))
);
新增本地索引,並將其設定為主鍵。
SQL> create unique index pk_acc_item_cur on acc_item_cur(acc_item,acc_date,area_code) local;
SQL> create unique index pk_acc_item_cur on acc_item_cur(acc_item,acc_date,area_code) local;
Index created.
SQL> alter table acc_item_cur add primary key (acc_item,acc_date,area_code) using index
pk_acc_item_cur;
Table altered.
SQL> create sequence seq_acc_item cache 10000 noorder;
Sequence created.
SQL> declare
vdate date;
begin
vdate:=to_date('2012-01-01','yyyy-mm-dd');
for i in 1.. 4000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'ASIA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AMER');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 21 22 23
24 /
24 /
PL/SQL procedure successfully completed.
SQL> declare
vdate date;
begin
vdate:=to_date('2012-02-05','yyyy-mm-dd');
for i in 1.. 4000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'ASIA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AMER');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 21 22 23
24 /
24 /
PL/SQL procedure successfully completed.
SQL> declare
vdate date;
begin
vdate:=to_date('2012-03-05','yyyy-mm-dd');
for i in 1.. 4000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'ASIA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AMER');
end loop
commit;
vdate date;
begin
vdate:=to_date('2012-03-05','yyyy-mm-dd');
for i in 1.. 4000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'ASIA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AMER');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'AFRICA');
end loop
commit;
for i in 1.. 5000 loop
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
insert into acc_item_cur values(seq_acc_item.nextval,to_char(i),vdate,'EUROPE');
end loop
commit;
end; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
20 21 22 23
24 /
24 /
PL/SQL procedure successfully completed.
建立中間表
SQL> create table acc_item_ex
2 (acc_item number,
3 acc_item_desc varchar2(20),
4 acc_date date,
5 area_code varchar2(6)
6 )
7 partition by list (area_code)
8 (partition d1_con1 values('ASIA','AUST'),
9 partition d1_con2 values('AMER'),
10 partition d1_con3 values('AFRICA'),
11 partition d1_con4 values('EUROPE'));
2 (acc_item number,
3 acc_item_desc varchar2(20),
4 acc_date date,
5 area_code varchar2(6)
6 )
7 partition by list (area_code)
8 (partition d1_con1 values('ASIA','AUST'),
9 partition d1_con2 values('AMER'),
10 partition d1_con3 values('AFRICA'),
11 partition d1_con4 values('EUROPE'));
Table created.
//建立索引
create unique index pk_acc_item_ex on acc_item_ex(acc_item,acc_date,area_code) local;
alter table acc_item_ex add primary key (acc_item,acc_date,area_code) using index pk_acc_item_ex;
alter table acc_item_ex add primary key (acc_item,acc_date,area_code) using index pk_acc_item_ex;
建立歷史表
SQL> create table acc_item_his
(acc_item number,
acc_item_desc varchar2(20),
acc_date date,
area_code varchar2(6)
)
partition by range (acc_date)
subpartition by list (area_code)
(partition d1 values less than (TO_DATE('2012-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d1_con1 values('ASIA','AUST'),
subpartition d1_con2 values('AMER'),
subpartition d1_con3 values('AFRICA'),
subpartition d1_con4 values('EUROPE')),
partition d2 values less than (TO_DATE('2012-03-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d2_con1 values('ASIA','AUST'),
subpartition d2_con2 values('AMER'),
subpartition d2_con3 values('AFRICA'),
subpartition d2_con4 values('EUROPE')),
partition d3 values less than (TO_DATE('2012-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'))
(subpartition d3_con1 values('ASIA','AUST'),
subpartition d3_con2 values('AMER'),
subpartition d3_con3 values('AFRICA'),
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 subpartition d3_con4 values('EUROPE'))
); 21 22 23 24
/
Table created.
SQL> create unique index pk_acc_item_cur on acc_item_his(acc_item,acc_date,area_code) local;
SQL> create unique index pk_acc_item_cur on acc_item_his(acc_item,acc_date,area_code) local;
Index created.
SQL> alter table acc_item_his add primary key (acc_item,acc_date,area_code) using index
pk_acc_item_his;
交換分割槽
SQL> alter table acc_item_cur exchange partition d1 with table acc_item_ex including index ;
SQL> alter table acc_item_cur exchange partition d1 with table acc_item_ex including index ;
執行失敗,去除including index 執行OK
alter table acc_item_cur exchange partition d1 with table acc_item_ex OK
SQL> alter table acc_item_his exchange partition d1 with table acc_item_ex including index without validation ;
SQL> alter table acc_item_his exchange partition d1 with table acc_item_ex including index without validation ;
執行失敗 ,去除including index 執行OK
alter table acc_item_his exchange partition d1 with table acc_item_ex without validation ;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15187685/viewspace-752897/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 海量資料處理_表分割槽(分割槽自動維護與歷史分割槽歸檔)
- 資料表分割槽分割與刪除歷史資料
- oracle之分割槽交換Oracle
- Oracle資料庫分割槽表SPLIT操作導致歸檔瘋漲Oracle資料庫
- MySQL使用pt-archiver歸檔歷史資料MySqlHive
- oracle分割槽交換(exchange)技術Oracle
- Oracle Vs MsSQL 之交換分割槽OracleSQL
- 定期truncate 歷史間隔分割槽INTERVAL PARTITION
- 不用swap分割槽,用交換檔案(轉)
- SQL Server 自動迴圈歸檔分割槽資料指令碼SQLServer指令碼
- linux交換分割槽Linux
- unbuntu新增交換分割槽
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- Ubuntu 啟用交換分割槽Ubuntu
- oracle 之全文索引表的分割槽交換案例Oracle索引
- linux交換分割槽調整Linux
- 擴充套件aix交換分割槽套件AI
- 交換分割槽之without validation
- ORACLE刪除-表分割槽和資料Oracle
- 【Solaris】Solaris檔案系統管理2 SWAP交換分割槽管理
- MySql資料分割槽操作之新增分割槽操作MySql
- 分割槽表入無分割槽的資料庫資料庫
- 詳解ORACLE資料庫的分割槽表Oracle資料庫
- 匯入匯出 Oracle 分割槽表資料Oracle
- ORACLE資料庫歸檔改為非歸檔Oracle資料庫
- 雲端計算:交換分割槽管理 Swap
- Oracle分割槽表及分割槽索引Oracle索引
- oracle 分割槽Oracle
- Oracle閃回資料歸檔Oracle
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- oracle分割槽表和分割槽表exchangeOracle
- Oracle查詢Interval partition分割槽表內資料Oracle
- Oracle資料庫開發——瞭解分割槽表Oracle資料庫
- 全面剖析Oracle資料庫中的分割槽功能Oracle資料庫
- oracle交換分割槽所引起的索引失效問題探究測試Oracle索引
- Oracle 12cr2 資料庫之間傳輸表,分割槽或子分割槽Oracle資料庫
- 【LINUX學習】設定交換分割槽Linux
- aix擴充 交換分割槽的步驟AI