今天在統計月對賬時,發現備份庫表中資料比實際資料多出兩千萬行,經查詢發現,原來是同事將某幾天的資料重複備份了。這樣我們本能的考慮刪掉備份重複的那幾天的資料,重新匯入備份,或者本表去重。
但是在乙個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 根據分割槽刪除資料,可以刪除滿足條件的分割槽,具體 格式...