仓酷云

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

[学习教程] MSSQL网页设计怎样避免SQL Server数据库的事件日记异...

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

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

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

x
在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。server|数据|数据库当事件日记扩大到没法承受的限制时您必需实行的步骤。事件日记的扩大会招致MicrosoftSQLServer数据库没法利用。
  在SQLServer2000中,每一个数据库都最少包括一个数据文件和一个事件日记文件。SQLServer2000在该数据文件中以物理体例存储数据。事件日记文件存储您对SQLServer数据库实行的一切修正的具体信息,和实行每一个修正的事件的具体信息。因为事件完全性被视为SQLServer的一个基础而固有的特性,因而不克不及在SQLServer2000中封闭对事件具体信息的纪录。
  在逻辑意义上,事件日记文件被分别为更小的段,这些段被称为假造日记文件。在SQLServer2000中,您能够将事件日记文件设置为依据必要扩大。用户能够把持事件日记的扩大,也能够将其设置为利用一切可用的磁盘空间。SQLServer对事件日记文件巨细所做的任何修正(如截断或增加事件日记文件)都是以假造日记文件为单元实行的。
  假如与SQLServer数据库绝对应的事件日记文件被充斥,并且事件日记文件选项被设置为主动增加,则事件日记文件将以假造日记文件为单元增加。偶然,事件日记文件大概变得十分年夜,乃至没有充足的磁盘空间。假如事件日记文件不休增加,以致日记文件占用了一切可用的磁盘空间而没法持续扩大,则将没法再对数据库实行任何数据修正操纵。不但云云,因为事件日记缺少扩大空间,SQLServer大概会将您的数据库标志为可疑数据库。
  减大事务日记的巨细
  假如事件日记已增加到没法承受的限制,而您但愿从这类情况中恢复,则必需减大事务日记的巨细。为此,必需截断事件日记中非举动的事件并压缩事件日记文件。
  注重:事件日记关于保护数据库的事件完全性十分主要。因而,即便您为数据库和事件日记制造了备份,也不得删除事件日记文件。
  截断事件日记中非举动的事件
  当事件日记增加到没法承受的限制时,您必需当即备份事件日记文件。创立事件日记文件的备份后,SQLServer会主动截断事件日记的非举动部分。事件日记文件的非举动部分包括已完成的事件,因而,在恢复过程当中SQLServer将不再用到事件日记文件。SQLServer会从头使用事件日记中这段被截断的非举动空间,而不会同意事件日记持续增加并占用更多空间。
  还能够经由过程截断的办法,处置务日记文件中删除非举动的事件。有关截断事件日记的其他信息,请拜见SQLServer联机丛书中的“截断事件日记”主题。
  主要申明:手动截断事件日记文件后,必需在创立事件日记备份之前创立一个完全的数据库备份。
  压缩事件日记文件
  备份操纵或截断办法都不会减小日记文件的巨细。要减大事务日记文件的巨细,必需压缩事件日记文件。要将事件日记文件压缩到所需巨细并删除无用的页面,您必需利用DBCCSHRINKFILE操纵。DBCCSHRINKFILETransact-SQL语句只能压缩日记文件中的非举动部分。
  注重:当DBCCSHRINKFILETransact-SQL语句独自利用时,不克不及截断日记并压缩日记文件中的已用空间。
  避免事件日记文件非常增加
  要避免事件日记文件非常增加,倡议利用以下办法之一:
•将事件日记文件的巨细设置为一个较年夜值,以免事件日记文件主动扩大。
  •充实评价最好内存巨细后,利用内存单元而不是百分比来设置事件日记文件的主动扩大。
  •变动恢复模子。假如产生劫难或数据破坏,您必需恢单数据库,以保护数据库数据的分歧性和事件的完全性。依据数据在数据库中的主要水平,您能够选择以下恢复模子之一,以便断定怎样备份数据和数据丧失大概给您带来的风险:
•复杂恢复模子(SIMPLE)
  •完整恢复模子(FULL)
  •年夜容量日记纪录恢复模子(BULK-LOGGED)
  利用复杂恢复模子,您能够将数据库恢复到比来的数据库备份。利用完整恢复模子或年夜容量日记纪录恢复模子,您能够经由过程利用事件日记文件备份来复原数据库,如许能够将数据库恢复到妨碍产生时的妨碍点。
  默许情形下,在SQLServer2000中,SQLServer数据库的恢复模子被设置为完整恢复模子。在完整恢复模子中,会按期备份事件日记,从而避免事件日记文件增加得过年夜,乃至与数据库巨细比拟严峻掉衡。比拟之下,假如不实行事件日记的按期备份,事件日记文件会不休增加,直至充斥全部磁盘,并且您大概没法对SQLServer数据库实行任何数据修正操纵。
  假如您不但愿在劫难恢复操纵过程当中利用事件日记文件,则能够从完整恢复模子变动为复杂恢复模子。
  •按期备份事件日记文件,删除事件日记中非举动的事件。
  •将事件计划为小型事件。
  •确保没有任何得逞事件持续无穷期地运转。
  •将“更新统计”选项布置为天天运转。
  •要对索引举行碎片收拾以改良临盆情况中的事情负荷功能,请利用DBCCINDEXDEFRAGTransact-SQL语句而不是DBCCDBREINDEXTransact-SQL语句。假如运转DBCCDBREINDEX语句,当SQLServer数据库处于完整恢复形式时,事件日记大概会年夜年夜扩大。别的,DBCCINDEXDEGRAG语句不像DBCCDBREINDEX语句那样长工夫持有锁。
  假如您必需运转DBCCDBREINDEX语句,由于这是一个功课,是数据库保护企图的一部分,则必需将该功课分化为多个功课。别的,在实行这些功课的间歇,还必需常常备份事件日记。
我们分析上面的两个操作,都有一个“删除数据”的过程。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-15 03:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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