通過DB_LINK按照分割槽表抽取資料
DB:11.2.0.3.0
OS:oracle-linux 5.7
建表語句:
create table YOON.YOON_HIS
(
c_id NUMBER not null,
YOON_code VARCHAR2(30),
create_time DATE,
update_time DATE not null,
)
partition by range (CREATE_TIME)
(
partition PART_01 values less than (TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255,
partition SYS_P29637 values less than (TO_DATE(' 2014-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P30739 values less than (TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P31828 values less than (TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P32711 values less than (TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P33052 values less than (TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
)
);
建立DB_LINK,按分割槽表來抽取資料。(因資料量過大,大約8億行,直接抽取會報undo回滾段錯誤)
按照分割槽抽數方法如下:
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME<=(TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2015-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
OS:oracle-linux 5.7
建表語句:
create table YOON.YOON_HIS
(
c_id NUMBER not null,
YOON_code VARCHAR2(30),
create_time DATE,
update_time DATE not null,
)
partition by range (CREATE_TIME)
(
partition PART_01 values less than (TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255,
partition SYS_P29637 values less than (TO_DATE(' 2014-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P30739 values less than (TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P31828 values less than (TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P32711 values less than (TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition SYS_P33052 values less than (TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
tablespace YOON
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
)
);
建立DB_LINK,按分割槽表來抽取資料。(因資料量過大,大約8億行,直接抽取會報undo回滾段錯誤)
按照分割槽抽數方法如下:
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME<=(TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2012-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2014-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
insert /*+APPEND*/ into YOON.YOON_HIS select /*+ parallel(t 8) */ * from YOON.YOON_HIS@cts01 t
where CREATE_TIME>(TO_DATE(' 2015-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) and
CREATE_TIME<=(TO_DATE(' 2015-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'));
commit;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-1389526/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一次通過DB_LINK抽取資料過慢原因分析
- 海量資料遷移之分割槽並行抽取並行
- 分割槽表入無分割槽的資料庫資料庫
- 自動備份、截斷分割槽表分割槽資料
- 資料表分割槽分割與刪除歷史資料
- MySQL資料表分割槽手記MySql
- 海量資料處理_表分割槽
- 分割槽表匯入資料庫資料庫
- 資料庫分割槽表 什麼情況下需要分割槽資料庫
- postgresql分割槽表修改資料表欄位SQL
- Hash分割槽表分割槽數與資料分佈的測試
- 使用expdp匯出分割槽表中的部分分割槽資料
- Oracle資料庫表範圍分割槽策略測試過程Oracle資料庫
- ORACLE刪除-表分割槽和資料Oracle
- hive 動態分割槽插入資料表Hive
- Hash分割槽表及資料分佈
- oracle分割槽表和分割槽表exchangeOracle
- 海量資料處理_表分割槽(分割槽自動維護與歷史分割槽歸檔)
- 全面學習分割槽表及分割槽索引(13)--分隔表分割槽索引
- oracle分割槽表和非分割槽表exchangeOracle
- 通過分割槽進行優化(轉)優化
- 詳解ORACLE資料庫的分割槽表Oracle資料庫
- 匯入匯出 Oracle 分割槽表資料Oracle
- Oracle分割槽表及分割槽索引Oracle索引
- INTERVAL分割槽表鎖分割槽操作
- 全面學習分割槽表及分割槽索引(9)--刪除表分割槽索引
- 全面學習分割槽表及分割槽索引(11)--合併表分割槽索引
- 全面學習分割槽表及分割槽索引(12)--修改list表分割槽索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引
- 插入遠端資料庫資料遇到分割槽表bug資料庫
- 如何查詢分割槽表的分割槽及子分割槽
- Hi3516開發筆記(五):通過HiTools使用網口將uboot、kernel、roofts按照分割槽表燒寫筆記boot
- Hi3516開發筆記(六):通過HiTools使用USB/串列埠將uboot按照分割槽表燒寫映象筆記串列埠boot
- 資料庫分割槽表分割槽未分配導致的一些問題資料庫
- MySql資料分割槽操作之新增分割槽操作MySql
- 使用split對分割槽表再分割槽
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引