• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 教你如何縮小軟件測試開發技術SQL Server數據庫日志文件

    發表于:2009-10-09來源:作者:點擊數: 標簽:軟件測試數據庫sqlSqlSQL
    教你如何縮小軟件 測試 開發 技術 SQL Server 數據庫 日志文件 SQL Server數據庫 關鍵字:縮小SQL Server數據庫日志問題:數據庫實際大小為600MB,日志文件實際大小為33MB,但日志文件占用空間為2.8GB!試了多種方式,SHIRNKDATABASE,TRUNCATELOGFILE,都沒辦法

    教你如何縮小軟件測試開發技術SQL Server數據庫日志文件  SQL Server數據庫

    關鍵字:縮小SQL Server數據庫日志問題:數據庫實際大小為600MB, 日志文件實際大小為33MB, 但日志文件占用空間為2.8GB!試了多種方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都沒辦法將文件縮小。無論如何,這應該算SQL Server的一個BUG吧。 

    解決方法: 

    后來找到下面的代碼,就可以將日志文件縮小到自己想要的大小了。把代碼COPY到查詢分析器里,,然后修改其中的3個參數(數據庫名,日志文件名,和目標日志文件的大小),運行即可。 


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


    USE     Marias            
     -- 要操作的數據庫名
    SELECT  @LogicalFileName = ’Marias_log’  
    -- 日志文件名
    @MaxMinutes = 10,               
    -- Limit on time allowed to wrap log.
            @NewSize = 100                  
    -- 你想設定的日志文件的大小(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 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 / 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 
      
     

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>