ORACLE大表刪除部分資料的最佳方案

2021-06-21 09:51:31 字數 455 閱讀 4607

今天在統計月對賬時,發現備份庫表中資料比實際資料多出兩千萬行,經查詢發現,原來是同事將某幾天的資料重複備份了。這樣我們本能的考慮刪掉備份重複的那幾天的資料,重新匯入備份,或者本表去重。

但是在乙個3億行級的大表中,用delete刪除掉兩千萬行資料,根本是行不通的,delete會產生大量的undo日誌,最終只會導致資料庫崩潰。

1、用ctas的方法建立乙個新錶,排除要delete的資料;

create table abc_check_201403_new tablespace ts_abc_201403_data as 

select * from abc_check_201403 t where create_time=to_date('20140325','yyyymmdd');

2.將缺少的那幾天的正確資料重新匯入新錶;

3.給新錶重建索引;

4.將新錶改名rename;即可完成。

Oracle 刪除大表中部分資料

需求 專案中有一張表大概有7000多萬條資料,造成表空間已滿,需要清理部分資料,打算清理3000萬。2b 做法 delete from table name where id 40000000 備註 select count 1 from table name where id his batch ...

Hive表刪除表部分資料

1 hive表刪除資料不能使用deletefrom table name 中sql語句 2 hive表刪除資料要分為不同的粒度 table partition partition內 alter table table name drop partition partiton name value i...

hive表如何刪除部分資料

hive 表刪除部分資料不支援使用 delete from table name where 語句 hive表刪除資料要分為不同的粒度 table partition partition內 有分割槽欄位的資料表,刪除資料時要注意分兩種情況 1 根據分割槽刪除資料,可以刪除滿足條件的分割槽,具體 格式...