我遇到一个情况,就是当表中大部分数据的时候,大概有几十万到一百多万吧,
用delete from 表 where 删除的时候 数据库日志会很大~~~求解决方法delete数据库

解决方案 »

  1.   

    这个无解的。
    除非简单恢复模式。如果是清表的话truncate.
      

  2.   

    用DELETE 是一条条的删除,事务日志很多的。
      

  3.   

    如果要保留的数据很小的话,可以把要保留的复制到临时表, 然后truncate 再插进去。具体的开销,你自己可以测试下看是否花的来。
      

  4.   

    方案1:delete的时候切换恢复模式,只要非完整即可。delete后还原原有恢复模式。
    方案2:保持恢复模式,操作完后做一次日志备份。
    方案3:
    select * into #t from tb where 需要保留的数据
    go
    truncate table tb
    go
    insert into tb 
    select * from #t
    go
      

  5.   

    你有做日志备份吗?不需要的日志备份的话就改成简单模式吧。
    如果觉得日志太多,可以截断的。DBCC SHRINKFILE (N'LOGNAME' , 0, TRUNCATEONLY)