小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

快速刪除大批量數(shù)據(jù)

 shymi 2011-11-25

如果要?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示例: 

  1. WHILE    
  2. BEGIN    
  3.   DELETE TOP(5000) FROM dbo.LargeOrders    
  4.   WHERE OrderDate '19970101'   
  5.       
  6.   IF @@rowcount 5000 BREAK;    
  7. END    
  8. GO 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多