本文由 千趣源码 – qianqu 发布,转载请注明出处,如有问题请联系我们!卸载oracle客户端步骤-oracle数据库重启命令
引言
有那样一个5201;求,有一个5000万的大表,必须保存近期3个月的数据信息,也就是1000万的数据信息。可是这一表用的较为经常,工作环境一直7*24钟头。假如受按段删掉危害的時间太长,则应用重新命名转换。使我们先在检测数据库查询中做一个训练。
以BN_SEQUENCE表为接口测试,信息量约为6000万。
思索
近期有点喜欢绘画。我认为更栩栩如生。很有可能有点儿丑。不在意~实施意见
1.获得表a的界定,数据库索引,触发器原理和外键约束..
实际上这儿的表界定,数据库索引,主键和外键都能够用PLSQL立即见到,因此不写,只写触发器原理的这些。
有关sql:
--查询表里触发器原理界定SELECT * FROM DBA_TRIGGERS WHERE TABLE_NAME='BN_SEQUENCE';SELECT DBMS_METADATA.GET_DDL('TRIGGER','CHK_BIU_BN_SEQUENCE','GLOGOWNER') FROM DUAL;SELECT DBMS_METADATA.GET_DDL('TRIGGER','BN_SEQUENCE_PN','GLOGOWNER') FROM DUAL;-- Create tablecreate table BN_SEQUENCE( BN_RULE_GID VARCHAR2(101 CHAR) not null, BN_CONTEXT VARCHAR2(300 CHAR) not null, BN_SEQUENCE_ID VARCHAR2(50 CHAR) not null, CURVALUE VARCHAR2(50 CHAR), DOMAIN_NAME VARCHAR2(50 CHAR) not null, INSERT_USER VARCHAR2(128 CHAR) not null, INSERT_DATE DATE not null, UPDATE_USER VARCHAR2(128 CHAR), UPDATE_DATE DATE)tablespace DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 1 next 1 minextents 1 maxextents unlimited pctincrease 0 );.....2.建立B表–bn _ sequence _ bak。
--这儿只创建表界定,不用管束,数据库索引,触发器原理,外键约束-- Create tablecreate table BN_SEQUENCE_BAK( BN_RULE_GID VARCHAR2(101 CHAR) not null, BN_CONTEXT VARCHAR2(300 CHAR) not null, BN_SEQUENCE_ID VARCHAR2(50 CHAR) not null, CURVALUE VARCHAR2(50 CHAR), DOMAIN_NAME VARCHAR2(50 CHAR) not null, INSERT_USER VARCHAR2(128 CHAR) not null, INSERT_DATE DATE not null, UPDATE_USER VARCHAR2(128 CHAR), UPDATE_DATE DATE)tablespace DATA pctfree 10 initrans 1 maxtrans 255 storage ( initial 1 next 1 minextents 1 maxextents unlimited pctincrease 0 );3.按段插进。
为防止对网上自然环境导致危害,提议按段插进近期3个月的数据信息。
insert into BN_SEQUENCE_BAK select * from BN_SEQUENCE where update_date >=to_date('2019/08/19 00:00:00', 'yyyy/mm/dd hh24:mi:ss') andupdate_date =to_date('2019/06/19 00:00:00', 'yyyy/mm/dd hh24:mi:ss') andupdate_date
4.互换表。实际上我还在工作环境转换的情况下就早已踏入坑了,沒有考虑到物化视图,因此转换不上。
alter table BN_SEQUENCE rename to BN_SEQUENCE_ARCH;alter table BN_SEQUENCE_BAK rename to BN_SEQUENCE;
5.数据信息填补。将以前插进的数据信息填补纪录到互换表格中。
insert into BN_SEQUENCE select * from BN_SEQUENCE_ARCH where update_date >=to_date('2019/09/19 14:00:00', 'yyyy/mm/dd hh24:mi:ss')
6.为B表创建索引和触发器原理。还记得更名。
-- Add comments to The table comment on table BN_SEQUENCE is 'this table stores the current sequence value of the business number.';-- Add comments to the columns comment on column BN_SEQUENCE.BN_RULE_GID is 'BN_RULE_GID contains the unique identifier for the Business Number (BN) rule.';-- Create/Recreate primary, unique and foreign key constraints alter table BN_SEQUENCE add constraint PK_BN_SEQUENCE primary key (BN_RULE_GID, BN_CONTEXT, BN_SEQUENCE_ID) using index tablespace INDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 1M next 1M minextents 1 maxextents unlimited pctincrease 0 );alter table BN_SEQUENCE add constraint FK_BN_SEQRULE_GID foreign key (BN_RULE_GID) references BN_RULE (BN_RULE_GID);-- Grant/Revoke object privileges grant select, insert, update, delete on BN_SEQUENCE to APP_USER;grant select on BN_SEQUENCE to APP_USER_SELECT;grant select, insert, update, delete on BN_SEQUENCE to EXT_USER;....7.检查程序。
結果:数据信息所有转移,保存了上年6月19日迄今的数据信息,全过程10分鐘。8.学会放下餐桌。
提议在执行前保存一段时间。







