• 缩小SQL Server日志文件的SQL语句


    把下面的代码粘贴到SQL Query Analyzer(查询分析器)里执行即可(注意修改红色部分的3个参数):

    SET NOCOUNT ON
    DECLARE @LogicalFileName sysname,
    @MaxMinutes 
    INT,
    @NewSize 
    INT


    USE Dicky  --需要缩小日志的数据库名
    SELECT @LogicalFileName = 'Dicky_Log',  --日志文件的逻辑名,非物理文件名
    @MaxMinutes = 10-- Limit on time allowed to wrap log.
    @NewSize = 2 --需要重新设定的日志文件的大小(单位:M),此值必须小于原先文件大小

    -- Setup / initialize
    DECLARE @OriginalSize int
    SELECT @OriginalSize = size 
    FROM sysfiles
    WHERE name = @LogicalFileName
    SELECT 'Original Size of ' + db_name() + ' LOG is ' + 
    CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + 
    CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
    FROM sysfiles
    WHERE name = @LogicalFileName
    CREATE TABLE DummyTrans
    (DummyColumn 
    char (8000not null)


    DECLARE @Counter INT,
    @StartTime 
    DATETIME,
    @TruncLog 
    VARCHAR(255)
    SELECT @StartTime = GETDATE(),
    @TruncLog 
    = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

    DBCC SHRINKFILE (@LogicalFileName, @NewSize)
    EXEC (@TruncLog)
    -- Wrap the log if necessary.
    WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
    AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) 
    AND (@OriginalSize * 8 /1024> @NewSize 
    BEGIN -- Outer loop.
    SELECT @Counter = 0
    WHILE ((@Counter < @OriginalSize / 16AND (@Counter < 50000))
    BEGIN -- update
    INSERT DummyTrans VALUES ('Fill Log'
    DELETE DummyTrans
    SELECT @Counter = @Counter + 1
    END 
    EXEC (@TruncLog) 
    END 
    SELECT 'Final Size of ' + db_name() + ' LOG is ' +
    CONVERT(VARCHAR(30),size) + ' 8K pages or ' + 
    CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
    FROM sysfiles 
    WHERE name = @LogicalFileName
    DROP TABLE DummyTrans
    SET NOCOUNT OFF 

     

  • 相关阅读:
    人员安排问题--搜索算法的剪支方法应用
    深度优先搜索与广度有限搜索的比较
    任务调度问题-使用拟阵进行解决
    无向图的最小生成森林的拟阵解法
    拟阵的最优子集问题的贪心算法
    中国大学MOOC —— 学习笔记(三)
    中国大学MOOC —— 学习笔记(二)
    中国大学MOOC —— 学习笔记(一)
    Python DayDayUp —— 小项目实现(二)
    Python DayDayUp —— shelve模块
  • 原文地址:https://www.cnblogs.com/Dicky/p/122582.html
Copyright © 2020-2023  润新知