The NoteBook of EricKong

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          清除日志:

           
          DECLARE @LogicalFileName sysname,
                  @MaxMinutes INT,
                  @NewSize INT
          USE     szwzcheck             -- 要操作的數(shù)據(jù)庫(kù)名
          SELECT  @LogicalFileName = 'szwzcheck_Log',  -- 日志文件名
          @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
                  @NewSize = 20                  -- 你想設(shè)定的日志文件的大小(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換成你數(shù)據(jù)庫(kù)的名字即可,在查詢(xún)分析器里面運(yùn)行。

          posted on 2010-09-02 14:41 Eric_jiang 閱讀(2111) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 數(shù)據(jù)庫(kù)
          主站蜘蛛池模板: 襄垣县| 玉溪市| 扬州市| 榆社县| 普宁市| 西吉县| 本溪市| 阿巴嘎旗| 蕉岭县| 保亭| 乌鲁木齐市| 常德市| 南岸区| 德庆县| 柳州市| 荔浦县| 寿光市| 井陉县| 法库县| 探索| 荔波县| 罗甸县| 韶关市| 全南县| 阿拉尔市| 九龙坡区| 晋中市| 什邡市| 秦皇岛市| 柞水县| 静乐县| 宜阳县| 玛沁县| 汽车| 巢湖市| 德兴市| 长汀县| 佛山市| 来凤县| 三穗县| 武定县|