|
如果要?jiǎng)h除成百萬,成千萬條記錄.使用單純的delete.那簡直,幾乎是不可能的. 第一:delete語句每條都記錄日志. 第二:鎖表.如果該表還有人頻繁使用.那很快就處異常了. 解決方案: 1.最快的方法是使用truncate table A,由于truncate只記錄很少的日志.所以非常之快.但問題是truncate不能帶where子句.它用來清空整個(gè)表的數(shù)據(jù).oracle 據(jù)說有delete from table nolog語句.聽說也很快. 2.分批執(zhí)行. 分批執(zhí)行,這是個(gè)策略問題.由于一個(gè)delete是一個(gè)事務(wù).如果非常大批量執(zhí)行,執(zhí)行半小時(shí)沒還沒完成你不管了,或出異常.那就全部回滾到解放前了. 分批執(zhí)行就是螞蟻搬家戰(zhàn)術(shù)。 2005示例:
|
|
|