sqlserver2008日志清除后,数据库反映非常慢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver2008日志清除后,数据库反映非常慢相关的知识,希望对你有一定的参考价值。

程序报错显示数据写入失败后,强行重启的服务器,后发现服务器磁盘空间满,一个数据库的日志过大,后用dbcc shrinkfile收缩数据库,在重新生成索引,发现数据反映非常慢(响应效率不到之前的一半),而在SQLSERVER2008上的另一个没有进行任何操作的数据库,没有变慢的情况,请好心人帮忙,不知道是为什么了。

参考技术A sqlserver2008日志文件过大的解决办法

1、先分离数据库,到数据库存放目录更改一下日志文件名称。
2、进行附加,会报错。提示找不到日志文件,没有关系,在下方的表格中删除这个日志文件,点击确定,附加成功!
3、sql server 2008 r2 会自动为找不到日志文件的数据库添加一个日志文件,最后在数据库属性页中设置一下数据库的最大限制就可以了。
试试这种方法, 先进行一下测试!这样可以解决日志文件过大的问题!
我的这种方法,没有进行收缩日志文件, 而是重新生成一个日志文件。
参考技术B 是仅某一个或几个查询慢,还是库里面任何随便一条语句都慢?追问

任何一条语句都慢。

追答

磁盘空间已满应该收缩日志吧,而且重新生成索引也会写入大量日志的,
如果你的表很大生成索引也会很慢,你的索引生成完了吗?

追问

先收缩的日志,收缩完是11M,然后重新生成的索引,生成索引后日志2.3G,用DBCC SHOWCONTIG 察看了主要表 显示碎片都是 0%应该是生成完了吧。不过以前数据库也有阻塞,可是阻塞不是很厉害,现在阻塞比较严重,但最近客户端没有更新过。刚才看了下日志,依然2.3G 运行一天了,依旧很慢。

追答

一天2.3G的日志量应该操作算频繁了吧
如果另一个库的操作也频繁的话,应该不是读写瓶颈吧
建议你先更新一下统计信息观察一段时间

追问

先谢谢您了,这么热心,2.3G应该都是重新生成索引产生的,今天一天我看了下,基本上没变化,您说的更新统计信息是要怎么做呢?我这边真的很着急,DBA还出差了,下周才能回来,真怕回来之前就瘫痪了呀。

追答

UPDATE STATISTICS tablename
你先更新一个单表看看情况,任何一条语句都慢的话可能问题比较严重吧
你说的另一个2008的数据库是另外的一个实例还是同一个实例下的另一个数据库?
还有你说的强行重启服务器,也许会产生一些异常,建议checkdb检查一下

追问

UPDATE STATISTICS tablename这个我等到晚上没有业务的时候试一下了,另一个数据库是同实例下的。万分感谢。

本回答被提问者采纳

以上是关于sqlserver2008日志清除后,数据库反映非常慢的主要内容,如果未能解决你的问题,请参考以下文章

sql server 2008怎么清空日志

如何清理sql server 2008日志

SQL Server 2008 清除日志

清除SqlServer日志

sql server 2008怎么查看日志文件

sql server 2008 日志文件已经到了最大值,还会记录日志吗