电脑安全

您当前的位置:主页 > 电脑安全 >

MSSQL数据库日志的压缩与清除技巧-网络编程

来源:[db:来源]标题:   数据库    编辑:电脑技术全能网 时间:2019-09-18 12:31

原标题:MSSQL数据库日志的压缩与清除技巧-网络编程
   中心提醒:个别情形下,SQL数据库的压缩并不能很大水平上减小数据库巨细,其重要感化是压缩日记巨细  个别情形下,SQL数据库的压缩并不能很大水平上减小数据库巨细,其重要感化是压缩日记巨细,应该按期停止此操纵免得数据库日记过大:   1、设置数据库形式为简略形式:翻开SQL企业治理器,在操纵台根名目中顺次点开Microsoft SQL Server-->SQL Server组-->双击翻开你的效劳器-->双击翻开数据库名目-->抉择你的数据库称号(如论坛数据库Forum)-->而后点击右键抉择属性-->抉择选项-->在毛病复原的形式当选择"简略",而后按断定保留。  2、在以后数据库上点右键,看全部义务中的压缩数据库,个别外面的默许设置不必调剂,间接点断定。  3、压缩数据库实现后,倡议将您的数据库属性从新设置为尺度形式,操纵方式同第一点,由于日记在一些异样情形下每每是规复数据库的主要根据。  方式二SET NOCOUNT ONDECLARE @LogicalFileName sysname,     @MaxMinutes INT,     @NewSize INTUSE   tablename       -- 要操纵的数据库名SELECT @LogicalFileName = 'tablename_log', -- 日记文件名@MaxMinutes = 10,        -- Limit on time allowed to wrap log.     @NewSize = 1         -- 你想设定的日记文件的巨细(M)-- Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = size   FROM sysfiles  WHERE name = @LogicalFileNameSELECT '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 = @LogicalFileNameCREATE 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 = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF

上一篇:MSSQL SERVER认识存储过程语法-网络编程

下一篇:没有了