|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用剧本
/*本文由微软旧事组摘录上去的。一段十分有效的剧本。*/
头几天也碰着日记文件过年夜的成绩,数据库实践巨细为600M,日记文件实践巨细为33M,但日记文件占用空间为2.8G!!!试了多种体例,SHIRNKDATABASE,TRUNCATELOGFILE,都没举措将文件减少。不管怎样,这应当算SQLSERVER的一个BUG吧。
厥后找到上面的代码,就能够将日记文件减少到本人想要的巨细了。把代码COPY到查询剖析器里,,然后修正个中的3个参数(数据库名,日记文件名,和方针日记文件的巨细),运转便可(我已用过量次了)-----SETNOCOUNTONDECLARE@LogicalFileNamesysname,@MaxMinutesINT,@NewSizeINT
USEMarias--要操纵的数据库名SELECT@LogicalFileName=Marias_log,--日记文件名@MaxMinutes=10,--Limitontimeallowedtowraplog.@NewSize=100--你想设定的日记文件的巨细(M)
--Setup/initializeDECLARE@OriginalSizeintSELECT@OriginalSize=sizeFROMsysfilesWHEREname=@LogicalFileNameSELECTOriginalSizeof+db_name()+LOGis+CONVERT(VARCHAR(30),@OriginalSize)+8Kpagesor+CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+MBFROMsysfilesWHEREname=@LogicalFileNameCREATETABLEDummyTrans(DummyColumnchar(8000)notnull)
DECLARE@CounterINT,@StartTimeDATETIME,@TruncLogVARCHAR(255)SELECT@StartTime=GETDATE(),@TruncLog=BACKUPLOG+db_name()+WITHTRUNCATE_ONLY
DBCCSHRINKFILE(@LogicalFileName,@NewSize)EXEC(@TruncLog)--Wrapthelogifnecessary.WHILE@MaxMinutes>DATEDIFF(mi,@StartTime,GETDATE())--timehasnotexpiredAND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)AND(@OriginalSize*8/1024)>@NewSizeBEGIN--Outerloop.SELECT@Counter=0WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))BEGIN--updateINSERTDummyTransVALUES(FillLog)DELETEDummyTransSELECT@Counter=@Counter+1ENDEXEC(@TruncLog)ENDSELECTFinalSizeof+db_name()+LOGis+CONVERT(VARCHAR(30),size)+8Kpagesor+CONVERT(VARCHAR(30),(size*8/1024))+MBFROMsysfilesWHEREname=@LogicalFileNameDROPTABLEDummyTransSETNOCOUNTOFF
提供TCP/IP、ODBC和JDBC等多种数据库连接路径。 |
|