仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 668|回复: 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系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-18 18:17:30 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-18 18:17:30 | 只看该作者
大家注意一点。如下面的例子:
变相怪杰 该用户已被删除
地板
发表于 2015-1-25 18:10:50 | 只看该作者
语句级快照和事务级快照终于为SQLServer的并发性能带来了突破。个人感觉语句级快照大家应该应用。事务级快照,如果是高并发系统还要慎用。如果一个用户总是被提示修改不成功要求重试时,会杀人的!
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-3 12:47:42 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
小魔女 该用户已被删除
6#
发表于 2015-2-9 02:11:01 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
小妖女 该用户已被删除
7#
发表于 2015-2-26 18:24:49 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
老尸 该用户已被删除
8#
发表于 2015-3-8 16:33:30 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
兰色精灵 该用户已被删除
9#
发表于 2015-3-16 07:41:17 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
分手快乐 该用户已被删除
10#
发表于 2015-3-22 21:10:52 | 只看该作者
无法深入到数据库系统层面去了解和探究
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-30 01:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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