海量資料處理_表分割槽(線上重定義)
使用線上重定義方式將表分割槽
1,許可權:
execute_catalog_role:execute on dbms_redefinition
create any table
alter any table
drop any table
lock any table
select any table
2,確定是否可以重定義
BEGIN
dbms_redefinition.can_redef_table(uname => USER,
tname => 'ACT_LOG',
options_flag => dbms_redefinition.cons_use_rowid,
part_name => NULL);
END;
/
3,建立臨時表
create table ACT_LOG_PART
(
USER_ID INTEGER not null,
ACTION_DATE TIMESTAMP(6) not null,
TYPE VARCHAR2(50 BYTE) not null,
DETAIL VARCHAR2(4000 BYTE) not null,
CHNL VARCHAR2(1 BYTE) default '1'
) partition by range(action_date)(
partition p200909 values less than (to_date('20091001','YYYYMMDD')),
partition p201011 values less than (to_date('20101201','YYYYMMDD')),
partition p201201 values less than (to_date('20120201','YYYYMMDD')),
partition p201202 values less than (to_date('20120301','YYYYMMDD')),
partition p201203 values less than (to_date('20120401','YYYYMMDD')),
partition p201204 values less than (to_date('20120501','YYYYMMDD')),
partition p201205 values less than (to_date('20120601','YYYYMMDD')),
partition p201206 values less than (to_date('20120701','YYYYMMDD')),
partition p201207 values less than (to_date('20120801','YYYYMMDD')),
partition p201210 values less than (to_date('20121101','YYYYMMDD')),
partition p201211 values less than (to_date('20121201','YYYYMMDD')),
partition p201212 values less than (to_date('20130101','YYYYMMDD')),
partition p201303 values less than (to_date('20130401','YYYYMMDD')),
partition p201410 values less than (to_date('20141101','YYYYMMDD')),
partition p201412 values less than (to_date('20150101','YYYYMMDD')),
partition p201506 values less than (to_date('20150701','YYYYMMDD')),
partition p201507 values less than (to_date('20150801','YYYYMMDD')),
partition p201508 values less than (to_date('20150901','YYYYMMDD')),
partition p201509 values less than (to_date('20151001','YYYYMMDD')),
partition p201510 values less than (to_date('20151101','YYYYMMDD')),
partition p201601 values less than (to_date('20160201','YYYYMMDD')),
partition p201602 values less than (to_date('20160301','YYYYMMDD')),
partition p201604 values less than (to_date('20160501','YYYYMMDD')),
partition pmax values less than (maxvalue)
);
4,開始重定義
alter session force parallel dml parallel 4;
alter session force parallel ddl parallel 4;
BEGIN
dbms_redefinition.start_redef_table(uname => USER,
orig_table => 'ACT_LOG',
int_table => 'ACT_LOG_PART',
col_mapping => NULL,
options_flag => dbms_redefinition.cons_use_rowid,
orderby_cols => NULL,
part_name => NULL);
END;
/
5,建立索引
--create index
create index IDX_ACT_LOG_USERID_DATE on ACT_LOG_PART (USER_ID, ACTION_DATE) local;
6,同步
alter session disable parallel dml;
alter session disable parallel ddl;
BEGIN
dbms_redefinition.sync_interim_table(uname => USER,
orig_table => 'ACT_LOG',
int_table => 'ACT_LOG_PART',
part_name => NULL);
END;
/
7,完成
BEGIN
dbms_redefinition.finish_redef_table(uname => USER,
orig_table => 'ACT_LOG',
int_table => 'ACT_LOG_PART',
part_name => NULL);
END;
/
8,刪除臨時表
rename act_log_part to act_log_bak;
9,分析
begin
dbms_stats.gather_table_stats(ownname => user,tabname => 'ACT_LOG');
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-696993/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 線上重定義與普通表改為分割槽表
- 線上重定義方式將普通表修改為分割槽表
- 指令碼:線上重定義,從普通表到分割槽表,redefinition_table.sh指令碼
- PG的非分割槽表線上轉分割槽表
- 分割槽表truncate慢處理
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- 線上重定義的操作步驟__普通錶轉換為分割槽表的實驗案例
- 海量資料處理
- MySQL分表後原分割槽表處理方案MySql
- MySQL線上轉分割槽表(以及TiDB)MySqlTiDB
- mysql分割槽表佔用大量容量處理(最佳化)及歸檔分割槽表MySql
- 海量資料處理2
- zabbix上對mysql資料庫做分割槽表MySql資料庫
- 在 Apache Cassandra 中定義和最佳化資料分割槽Apache
- 在oracle 9i下線上重定義表Oracle
- MySQL資料表分割槽手記MySql
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- Ai影像分割模型PaddleSeg——自定義資料集處理AI模型
- 海量資料的併發處理
- 壓縮錶轉非壓縮表(線上重定義)
- oracle分割槽表和分割槽表exchangeOracle
- ORACLE刪除-表分割槽和資料Oracle
- hive 動態分割槽插入資料表Hive
- oracle分割槽表和非分割槽表exchangeOracle
- oracle 更改分割槽表資料 ora-14402Oracle
- PostgreSQL分割槽表、繼承表記錄去重方法SQL繼承
- MySql資料分割槽操作之新增分割槽操作MySql
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Oracle查詢Interval partition分割槽表內資料Oracle
- MySQL的nnodb引擎表資料分割槽儲存MySql
- AppBoxFuture: 大資料表分割槽的3種策略APP大資料
- Zabbix系統MySQL資料庫分割槽表的設定--精簡說明MySql資料庫
- 【MYSQL】 分割槽表MySql
- 滴滴海量離線資料的線上化 — FastLoadAST
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- 非分割槽錶轉換成分割槽表
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle 分割槽表move和包含分割槽表的lob moveOracle