仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 685|回复: 9
打印 上一主题 下一主题

[学习教程] 公布两种办法扫除SQL Server日记

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:09:42 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。在利用SQLServer过程当中人人常常会碰着数据库日记十分年夜的情形,在碰到这类成绩的时分,我们给人人先容了两种处置办法来办理。

  办法一

  一样平常情形下,SQL数据库的压缩其实不能很年夜水平上减小数据库巨细,其次要感化是压缩日记巨细,应该按期举行此操纵以避免数据库日记过年夜

  1、设置数据库形式为复杂形式:翻开SQL企业办理器,在把持台根目次中顺次点开MicrosoftSQLServer-->SQLServer组-->双击翻开你的服务器-->双击翻开数据库目次-->选择你的数据库称号(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在妨碍复原的形式当选择“复杂”,然后按断定保留

  2、在以后数据库上点右键,看一切义务中的压缩数据库,一样平常内里的默许设置不必调剂,间接点断定

  3、压缩数据库完成后,倡议将您的数据库属性从头设置为尺度形式,操纵办法同第一点,由于日记在一些非常情形下常常是恢单数据库的主要根据
 办法二

  SETNOCOUNTON

  DECLARE@LogicalFileNamesysname,

  @MaxMinutesINT,

  @NewSizeINT

  USEtablename--要操纵的数据库名

  SELECT@LogicalFileName=tablename_log,--日记文件名

  @MaxMinutes=10,--Limitontimeallowedtowraplog.

  @NewSize=1--你想设定的日记文件的巨细(M)

  --Setup/initialize

  DECLARE@OriginalSizeint

  SELECT@OriginalSize=size

  FROMsysfiles

  WHEREname=@LogicalFileName

  SELECTOriginalSizeof+db_name()+LOGis+

  CONVERT(VARCHAR(30),@OriginalSize)+8Kpagesor+

  CONVERT(VARCHAR(30),(@OriginalSize*8/1024))+MB

  FROMsysfiles

  WHEREname=@LogicalFileName

  CREATETABLEDummyTrans

  (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())--timehasnotexpired

  AND@OriginalSize=(SELECTsizeFROMsysfilesWHEREname=@LogicalFileName)

  AND(@OriginalSize*8/1024)>@NewSize

  BEGIN--Outerloop.

  SELECT@Counter=0

  WHILE((@Counter<@OriginalSize/16)AND(@Counter<50000))

  BEGIN--update

  INSERTDummyTransVALUES(FillLog)

  DELETEDummyTrans

  SELECT@Counter=@Counter+1

  END

  EXEC(@TruncLog)

  END

  SELECTFinalSizeof+db_name()+LOGis+

  CONVERT(VARCHAR(30),size)+8Kpagesor+

  CONVERT(VARCHAR(30),(size*8/1024))+MB

  FROMsysfiles

  WHEREname=@LogicalFileName

  DROPTABLEDummyTrans

  SETNOCOUNTOFF
客户还是可以使用DBaaS系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 15:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表