zoukankan      html  css  js  c++  java
  • sqlserve 数据库8G log文件也有10来g 按日期删除 方法

    数据库存了几年的数据没有维护过,数据庞大,日志文件也不小,如何清理不需要的数据呢

    首先考虑的肯定是某个日期之前的数据清除掉

    delete from 表名 where cast(字段名 as datetime)<'2018-07-21' 

    数据库很大 上边这条指令是不行滴

    因为每次删除都会产生较大log 文件,还不等进行删除时,日志文件十几个G了,无法使用此操作

    用下边的方式日志文件不会增加, 处理速度在接受范围内,一个大表基本几分钟搞定

    1。如果您在执行 Delete Table1 where Time < '2004-03-01' 由于涉及的记录比较多,所以日志记录也相应很大(3-4G),如果可行,我建议您尝试以下方式:
    
    -- 选出您所需要保留的记录到新的表。如果您使用 Full Recovery Mode
    -- 根据SELECT INTO的记录数,日志可能会比较大
    Select * into Table2 From Table1 Where Time > = '2004-03-01'
    
    -- 然后直接Truncate Table1。无论何种恢复模式都不会进行日志记录
    Truncate table Table1
    
    -- 最后对Table2进行改名为Table1
    EC sp_rename 'Table2', 'Table1'


    https://blog.csdn.net/hzp666/article/details/82801599

    我是这么弄的

    USE [master]
    GO
    ALTER DATABASE DFTDDB SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTER DATABASE DFTDDB SET RECOVERY SIMPLE
    GO
    USE DFTDDB
    GO
    Select * into Table2 From Table1 Where Time > = '2004-03-01'  //此处换成自己的
    GO 
    USE [master]
    GO
    ALTER DATABASE DFTDDB SET RECOVERY FULL WITH NO_WAIT
    GO
    ALTER DATABASE DFTDDB SET RECOVERY FULL GO

    先把sqlserver 编程simple模式  进行操作,处理完了再变换过来

     

  • 相关阅读:
    HttpContext.GetOwinContext().Authentication 报错 解决办法
    owin Claims-based认证登录实现
    angularjs初识ng-app、ng-model、ng-repeat指令
    SpringBoot配置slf4j logback-spring.xml日志
    idea时间注释模版
    oracel截取字符串
    win10官网下载地址
    使用HttpWebRequest实现basic身份认证
    mybatis常用jdbcType数据类型与mysql的类型对照
    修改IntelliJ IDEA 默认配置路径
  • 原文地址:https://www.cnblogs.com/zuochanzi/p/11283441.html
Copyright © 2011-2022 走看看