單表接近10億行了,想直接執行truncate,清楚所有資料,要怎么執行避免出錯,查了一些資料說索引可能會出問題,請教大家!
uj5u.com熱心網友回復:
可以考慮洗掉重建。PS: 直接 truncate 是沒有問題的,放心干吧。
uj5u.com熱心網友回復:
你資料是再也不用了嗎,這個要確定好,如果truncate還原很難的,如果沒開歸檔一般DBA可恢復不了。如果資料確定不要了就放心洗掉吧uj5u.com熱心網友回復:
確定資料沒用或以備份好,truncate沒問題的,單表沒磁區的話,索引也不會有問題。
uj5u.com熱心網友回復:
問題是表是磁區表,查了資料說磁區表直行truncate會導致索引出問題uj5u.com熱心網友回復:
磁區表可以直接truncate嗎uj5u.com熱心網友回復:
應該沒問題,有問題也是global index,資料都沒了,大不了重建下唄,應該是秒建。
uj5u.com熱心網友回復:
不要資料就drop 表 ,再重建uj5u.com熱心網友回復:
不要資料就drop 表 ,再重建
uj5u.com熱心網友回復:
你資料是再也不用了嗎,這個要確定好,如果truncate還原很難的,如果沒開歸檔一般DBA可恢復不了。如果資料確定不要了就放心洗掉吧
哈哈,可以放心truncate,如果洗掉錯了,可以找我們,只要沒有覆寫,還是可以的
uj5u.com熱心網友回復:
回圈洗掉declare cursor ID_KEY_CURSOR is
SELECT t.senddate senddate from ICDRPT.SUM_PROVINCE_BUSINESS_H15 t where substr(t.senddate,1,8) < '20190101';
begin
for V_TO_DEL in ID_KEY_CURSOR loop
DELETE FROM ICDRPT.SUM_PROVINCE_BUSINESS_H15
WHERE ICDRPT.SUM_PROVINCE_BUSINESS_H15.SENDDATE = V_TO_DEL.senddate;
if mod(ID_KEY_CURSOR%Rowcount, 5000) = 0
then commit;
end if;
end loop;
commit;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6878.html
標籤:基礎和管理
