The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          清除日志:

           
          DECLARE @LogicalFileName sysname,
                  @MaxMinutes INT,
                  @NewSize INT
          USE     szwzcheck             -- 要操作的數據庫名
          SELECT  @LogicalFileName = 'szwzcheck_Log',  -- 日志文件名
          @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
                  @NewSize = 20                  -- 你想設定的日志文件的大小(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 (8000) not 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
                AND @OriginalSize = (SELECT size FROM sysfiles WHERE name =
          @LogicalFileName) 
                AND (@OriginalSize * 8 /1024) > @NewSize 
            BEGIN -- Outer loop.
              SELECT @Counter = 0
              WHILE  ((@Counter < @OriginalSize / 16) AND (@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
           
          把szwzcheck換成你數據庫的名字即可,在查詢分析器里面運行。

          posted on 2010-09-02 14:41 Eric_jiang 閱讀(2111) 評論(0)  編輯  收藏 所屬分類: 數據庫
          主站蜘蛛池模板: 乐平市| 汉阴县| 吉隆县| 富锦市| 玉山县| 齐齐哈尔市| 肥西县| 阿拉善左旗| 保亭| 海丰县| 阿合奇县| 古丈县| 永平县| 江山市| 临颍县| 兴业县| 都江堰市| 逊克县| 多伦县| 文昌市| 石阡县| 津市市| 如东县| 芜湖县| 福清市| 塘沽区| 商都县| 绥滨县| 当雄县| 大荔县| 泰安市| 辛集市| 南部县| 仙桃市| 黔南| 新乡市| 元朗区| 紫金县| 晴隆县| 沁源县| 崇州市|