日期:2014-05-18  浏览次数:20437 次

郁闷了,10G数据库文件要40分钟才启动好?如何优化?

WIN2008R2+SQL2008R2,64位8G内存,分配了7G内存给SQL,主数据库文件大约10G.
表A有约3千万数据,自动ID,MD5值md5s,提交时间adt,最后检测时间ldt,操作人ID
表B有1千万数据,表A的ID,其它详细信息(如文件时间,文件关键词等字段)

空间占用情况:
表A数据空间3G大小,萦引4.2G,3千万数据
三个萦引:
建立了自动ID萦引(唯一);MD5S萦引(唯一);和不唯一的操作人ID,最后检测时间的萦引
(感觉上表A的自动ID萦引是重复建的,这个应该可以删除.操作人ID因太多用户必须进行定位不萦引速度超慢)

表B数据库空间1.2G,萦引182M
只建议了表AID的唯一萦引1个.


大概环境就是这样,停止SQL服务大概需要5~10分钟.
重启服务器或SQL服务,它加载这个10G的文件每秒读盘的速度只有1M多一秒.要四五十分钟才加载完.
好不容易加载完后,没有其它插入或查询或修改操作,内存已经吃到了3G多...


如何优化?



------解决方案--------------------
加大内存,CPU
------解决方案--------------------
硬盘iops可能是问题。但这个速度太慢了,可能存在别的问题。读数据的时候更新数据吗?如果更新的话使用readcommit选项,这样可以减少锁带来的数据读取问题。如果cpu很闲的话把这个表压缩一些吧,这样可以利用cpu资源来减少硬盘的负载。
------解决方案--------------------
查看日志信息,看看是否有错误提示?