仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 830|回复: 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语句,由于这是一个功课,是数据库保护企图的一部分,则必需将该功课分化为多个功课。别的,在实行这些功课的间歇,还必需常常备份事件日记。
我们分析上面的两个操作,都有一个“删除数据”的过程。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-19 09:43:30 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
不帅 该用户已被删除
板凳
发表于 2015-1-27 07:19:48 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
小魔女 该用户已被删除
地板
发表于 2015-2-5 04:21:17 | 只看该作者
一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
因胸联盟 该用户已被删除
5#
发表于 2015-2-11 04:47:10 | 只看该作者
代替了原来VB式的错误判断。比Oracle高级不少。
若天明 该用户已被删除
6#
发表于 2015-3-1 21:48:03 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-11 00:36:32 | 只看该作者
是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
再见西城 该用户已被删除
8#
发表于 2015-3-17 17:09:48 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-24 14:42:06 | 只看该作者
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 19:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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