MSSQLServer数据库空间优化指南.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MSSQLServer数据库空间优化指南,sqlserver数据库优化,sqlserver数据库优化,mssql数据库性能优化,sqlserver数据库,sqlserver备份数据库,sqlserver还原数据库,sqlserver数据库下载,sqlserver导出数据库,sqlserver数据库

SQL Server数据库空间优化指南 由于新的持续集成测试需要同时配置SQL Server、Oracle、DB2三种数据库,但是在目前的测试环境中,只有一台可用的SQL Server数据库服务器,上面安装了数十个数据库,空间已经几乎耗尽(总共120G的数据文件空间,只剩下3G左右的磁盘空间),随时都可能出现磁盘空间不足的问题。为了解决磁盘空间的问题,对安装在此服务器上的数据库进行了初步分析,通过对日志文件和数据文件的大小进行整理,结果如下: 日志文件分析: 日志文件超过10G的1个(如BOS63nanche,光日志文件就有12G) 日志文件大小介于1~4G之间的6个 其它的日志文件均小于1G 数据文件大小分析: 数据数据超过5G的5个 其它的数据文件1~4G的4个 其它数据库的日志文件小于1G 通过上面的初步分析,决定对相关的文件进行瘦身处理: 日志文件瘦身: 在SQL Server 2005数据库中,当日志文件大小达到一定的容量时(暂时还没有找到临界值,目前都是在10G以上的日志文件中收缩时发现无法收缩成功),已经无法通过自动收缩日志的(收缩过程中会报错导致收缩失败,同时也无法分离),对于这种情况,只能先停止SQL Server数据库,然后手工直接删除对应的ldf日志文件。然后再重启SQL Server数据库,在加载时会自动报告该数据库缺少日志文件,按照提示生成一个新的日志文件即可,此步骤直接腾出了12G磁盘空间; 对于日志文件在1~4G之间的数据库,通过SQL脚本,直接进行日志收缩处理(也可直接通过管理控制台以界面的形式进行日志文件的收缩) 数据文件瘦身: 分析数据库中哪些对象的记录数最多,方法如下: 结果如下图: 以大数据量的表结果输出来看,其中有一个表T_PM_UserOrgPerm记录数最多,达到百万行级。下面即以此表为例进行表占用的空间情况的分析及处理 分析其空间占用情况: 结果如下: 备注:从表空间的占用情况来看,索引的大小为数据日志的4倍左右,存在碎片的可能,进一步进行索引分析 备注:总共9个索引,碎片率最小都在74以上(其中的0.01的为重建索引后的,未优化前大于80),明显碎片率过高,有重建索引的必要。 对此表进行全部索引重建,可以有两种方式进行重建操作, 界面操作——(选中该表-索引-全部重新生成(右健)),重建完成后,结果如下: 通过SQL命令操作: 备注:通过对该单表的索引优化重建,节省了约1.2G的磁盘空间。如果数据文件比较大,可能直接对整个数据库进行索引重建: 文件收收缩,对其它大数据量表重新上述操作步骤后,单表占用的空间会减少,但是默认情况下,数据库大小不变(数据库剩余空间增大),这里需要对数据库进行自动或手工收收缩处理(可以设置成自动收集,这样数据库会自动以一定的时间间隔对数据库进行收缩)。 通过上面两步的处理,磁盘空间从原来的4G增加到了25G,腾出了21G的磁盘空间。 结论与体会:平时我们可能对测试环境的优化与监控并不是很重视,但在实际测试中,常常会碰到资源争用与资源不足的情况,因此,对测试环境的优化不仅是必要的,而且是必须的。同时在优化的过程中,也可以形成对环境优化类知识的积累,既可以促进产品设计的改善,还可以帮助客户进行环境的定期优化与改善,提高用户的满意度(比如上面的BOS63Nanche,如果及时进行了日志文件的截断,则不会存在日志文件无法收缩的问题)。 另外,本文只是讨论了对数据库文件进行优化,实际上在实际的应用中,还可以对数据库表中的数据进行优化调整,比如一些日志表记录,保存一定周期内的日志记录就够了,如果长时间保留,同样也会耗费大量的磁盘空间(之前使用过用友NC系统,由于该系统每天都有大量的数据交换操作,因此,半年起来,光是数据交换操作所产生的日志文件表就占了超过10G的空间,通过优化,每个月对数据进行清理,只保留最近三个月的操作日志记录,大大减少了对磁盘空间的使用需求)。 第 1 页 共 3 页 --清除数据库日志 dump tran yytest with no_log backup log yytest with no_log dbcc shrinkdatabase(yytest) --统计表占用空间 exec sp_spaceused T_PM_UserOrgPerm --统计大表数据量(找出10万以上的数据库表) select a.name,b.rows from sysobjects a, sysindexes b where a.id=b.id and b.indid in (0,1) and b.rows100000 --重建数据库全部索引 exec sp_msforeachtable DBCC DBRE

文档评论(0)

xingkongwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档